JSON POST没有工作Windows Phone 7
我不认为这是工作,我想知道如果你能发现我的代码有什么问题,我该如何修复它?林新的非常这个,不知道是否使用网络请求,网络响应或任何东西。什么是做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 :(");
}
});
}
你的代码是不完整的,在数据写入请求流之后,你应该调用Request.BeginGetResponse()方法!
看看this sample code关于如何使用WebRequest进行POST(请注意,该示例是针对.NET 4.0的,但我认为您会明白)。
我仍然建议您使用RestSharp而不是使用基本的WebRequest来节省一些开发时间!
我应该为BeginGetResponse()方法中的状态对象放置什么? – user1290653 2012-04-20 14:24:55
再次将它传递给webrequest对象,就像您之前使用BeginGetRequestStream一样。 – 2012-04-20 14:34:44
它说它有无效的争论,我是否必须制作一个包含该“请求”项目的对象? – user1290653 2012-04-20 14:36:47
哪一点不工作?你有错误信息吗? – 2012-04-20 13:14:55