首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果启用了C#代理,则将POSTing数据转换为CGI脚本起作用,否则不起作用

如果启用了C#代理,则将POSTing数据转换为CGI脚本起作用,否则不起作用
EN

Stack Overflow用户
提问于 2019-05-20 16:02:48
回答 1查看 75关注 0票数 0

我需要发送数据到一个cgi脚本的POST方法。如果我在打开小提琴捕捉的情况下尝试我的代码,它就能工作,如果我关闭小提琴,它就不能工作。为什么会有这种奇怪的行为?

脚本cgi位于发送SMS的sms机器上。如果我在运行外部fiddler进程的情况下从Visual Studio2019运行我的代码,我会正确地得到这个响应:errno=0&desc=SMS Queued&SmsIndex=4

如果我关闭fiddler并运行我的代码,我会得到错误:errno=2&desc=Destination number missing

我还发现,如果我阻止fiddler捕获http流量,并且在我的代码中设置了http://localhost:8888 it works...BUT上的WebProxy,如果我关闭fiddler,代理就会关闭,我的代码就不再工作。

我需要在没有代理的情况下发布数据,我该怎么做?

我用.NET框架对象和RestSharp都试过了:同样的问题!这是我的代码.NET框架代码:

代码语言:javascript
复制
Dictionary<string,string> smsData = new Dictionary<string, string>{
                { "num", number },
                { "text", text },
                { "Push", push.ToString() },
                { "Pwd", password },
};

FormUrlEncodedContent formUrlEncodedContent = new FormUrlEncodedContent(smsData);            

HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "http://" + ip + "/smssend.cgi");            
httpRequestMessage.Content = formUrlEncodedContent;

HttpResponseMessage res = _httpClient.SendAsync(httpRequestMessage).Result;
return res.Content.ReadAsStringAsync().Result;

这是我的带有RestSharp库的.NET框架代码:

代码语言:javascript
复制
 RestClient client = new RestClient("http://" + ip + "/smssend.cgi");
 RestRequest request = new RestRequest("", Method.POST);
 request.AddParameter("num", number);
 request.AddParameter("text", text);
 request.AddParameter("Push", push.ToString());
 request.AddParameter("Pwd", password);
 RestResponse response = (RestResponse) client.Execute(request);
 return response.Content.ToString();
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56216611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档