Postman的restsharp代码片段不适用于winforms c#

时间:2016-12-20 12:56:59

标签: c# json winforms web-services restsharp

我必须向远程网络服务发送两个参数: 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文件中添加一些代码。我被困在这一点上。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我通过使用WebClient方法而不是RestSharp解决了我的问题。

感谢大家的帮助。