我必须向远程Web服务发送两个参数: firmano 和 irsaliyedata 。firmano是数字,而Irsaliyedata是 JSON对象。我已经与Postman一起尝试过,它没有任何问题。但是我必须使用公司的C#桌面应用程序来完成。
我手动输入参数,并通过Postman将其发送到Web服务,服务器返回了有效的值。Postman生成了下面的代码(C#-RestSharp):
var client = new RestClient("https://remoteserver.com/webservice");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: form-data; name="firmaNo"rnrn2000007rn------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: form-data; name="irsaliyeData"rnrn{ "rampaNoktasi": 21, "dosyaTarihi": "16.12.2016 17:37" }rn------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
但是,当我将此代码复制并粘贴到我的C#Winform应用程序的按钮时,服务器总是会返回超时错误。
var client = new RestClient("https://remoteserver.com/webservice");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: form-data; name="firmaNo"rnrn2000007rn------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: form-data; name="irsaliyeData"rnrn" + jsonstring + "rn------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
lbl_result.Text = response.Content + response.ErrorMessage;
我必须在当前的CS文件或app.config文件中添加一些代码。我在这一点上被困。
预先感谢。
我通过使用webclient方法而不是retsharp。
解决了我的问题。感谢大家的帮助。