2012-04-20 63 views
0

我不認爲這是工作,我想知道如果你能發現我的代碼有什麼問題,我該如何修復它?林新的非常這個,不知道是否使用網絡請求,網絡響應或任何東西。什麼是做json的POST最基本的方法?JSON POST沒有工作Windows Phone 7

謝謝

private void btnSaveCar_Click(object sender, RoutedEventArgs e) 
     { 
      string url = "http://......"; 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
      request.Method = "POST"; 
      request.BeginGetRequestStream(new AsyncCallback(ProcessResponse), request); 
     } 



    private void ProcessResponse(IAsyncResult asyncResult) 
    { 
     HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState; 
     Stream streamResp = request.EndGetRequestStream(asyncResult); 
     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Car)); 
     Car newCar = new Car(): 

     Deployment.Current.Dispatcher.BeginInvoke(() => 
     { 

      newCar.Condition = txtCondition.Text; 
      newCar.Colour = txtColour.Text; 
      newCar.RegistrationNumber = txtReg.Text; 
      newCar.Model = txtModel.Text; 
      short.TryParse(txtYear.Text, out newCar.Year); 
      short chassisNumber; 
      short.TryParse(txtChassisNumber.Text, out chassisNumber); 
      newCar.ChassisNumber = chassisNumber; 
      newCar.BodyStyle = txtBodyStyle.Text; 
      try 
      { 
       ser.WriteObject(streamResp, newCar); 
       NavigationService.GoBack(); 
      } 
      catch 
      { 
       MessageBox.Show("didnt work :("); 
      } 


     }); 
    } 
+0

哪一點不工作?你有錯誤信息嗎? – 2012-04-20 13:14:55

回答

1

你的代碼是不完整的,在數據​​寫入請求流之後,你應該調用Request.BeginGetResponse()方法!

看看this sample code關於如何使用WebRequest進行POST(請注意,該示例是針對.NET 4.0的,但我認爲您會明白)。

我仍然建議您使用RestSharp而不是使用基本的WebRequest來節省一些開發時間!

+0

我應該爲BeginGetResponse()方法中的狀態對象放置什麼? – user1290653 2012-04-20 14:24:55

+0

再次將它傳遞給webrequest對象,就像您之前使用BeginGetRequestStream一樣。 – 2012-04-20 14:34:44

+0

它說它有無效的爭論,我是否必須製作一個包含該「請求」項目的對象? – user1290653 2012-04-20 14:36:47