我必须向远程网络服务发送两个参数: firmaNo 和 irsaliyeData 。 firmaNo是数字,而irsaliyeData是 json对象。我已经用Postman尝试了它,它没有任何问题。但我必须使用我公司的c#桌面应用程序。
我手动输入参数并使用Postman将它们发送到Web服务,服务器返回有效值。邮差生成下面的代码(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", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"firmaNo\"\r\n\r\n2000007\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"irsaliyeData\"\r\n\r\n{ \"rampaNoktasi\": 21, \"dosyaTarihi\": \"16.12.2016 17:37\" }\r\n------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", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"firmaNo\"\r\n\r\n2000007\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"irsaliyeData\"\r\n\r\n" + jsonstring + "\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
lbl_result.Text = response.Content + response.ErrorMessage;
我是否必须在当前的cs文件或app.config文件中添加一些代码。我被困在这一点上。
提前致谢。
答案 0 :(得分:0)
我通过使用WebClient方法而不是RestSharp解决了我的问题。
感谢大家的帮助。