0

私はこれが機能しているとは思わない.私のコードに何か問題があるかどうか、そしてどうすれば修正できるかどうかを知りたい. 私はこれに非常に慣れていないため、Web 要求、Web 応答などを使用するかどうかわかりません。POST to json を行う最も基本的な方法は何ですか?

ありがとうございました

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 :(");
            }


        });
    }
4

1 に答える 1

1

あなたのコードは不完全です。リクエスト ストリームにデータを書き込んだ後、 Request.BeginGetResponse()メソッドを呼び出す必要があります。

WebRequestを使用して POST を実行する方法については、このサンプル コードを参照してください (サンプルは .NET 4.0 用であることに注意してください。ただし、理解できると思います)。

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

于 2012-04-20T13:21:48.310 に答える