Мне нужно отправить данные в скрипт cgi методом POST.Если я попробую свой код с включенным захватом fiddler, он будет работать, если я выключу fiddler, он не будет работать.Почему это странное поведение?
Сценарий cgi находится на смс-машине, которая отправляет SMS.Если я запускаю свой код из Visual Studio 2019 с запущенным процессом внешнего фиддлера, я правильно получаю этот ответ: errno=0&desc=SMS Queued&SmsIndex=4
Если я закрываю фиддлер и запускаю свой код, я получаю ошибку: errno=2&desc=Destination number missing
.
Я также выяснил, что если я остановлю fiddler от захвата http-трафика и установлю в своем коде WebProxy на http://localhost:8888, это будет работать ... НО, если я закрою fiddler, это отключит прокси имой код больше не работает.
Мне нужно опубликовать данные без прокси-сервера, как я могу это сделать?
Я пробовал как с объектами .NET Framework, так и с RestSharp: та же проблема!Это мой код .NET Framework код:
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;
Это мой код .NET Framework с библиотекой RestSharp:
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();