2012-04-20 6 views
0

私はこのコードがうまく動作しているとは思っていません。私はこれに非常に新しいもので、Webリクエスト、Webレスポンスなどを使用するかどうかはわかりません。 jsonにPOSTを実行する最も基本的な方法は何ですか?JSON POST is not working 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

どのビットが機能していませんか?エラーメッセージが表示されますか? –

答えて

1

ありがとう、あなたは要求ストリームにデータを書き込んだ後Request.BeginGetResponse()メソッドを呼び出す必要があります!

WebRequestを使用してPOSTを行う方法については、this sample codeを参照してください(このサンプルは.NET 4.0向けですが、私はあなたがそのアイデアを得ると思います)。

基本的なWebRequestを使用して開発時間を節約する代わりに、RestSharpを使用することをお勧めします。

+0

BeginGetResponse()メソッドの状態オブジェクトに何を配置すればよいですか? – user1290653

+0

前にBeginGetRequestStreamで行ったのと同じように、webrequestオブジェクトに再度渡します。 –

+0

それは無効な引数を持っていると言います、その "要求"アイテムを含むオブジェクトを作る必要がありますか? – user1290653