我需要从我的UWP应用发送POST请求。 我了解了here。
我使用一个共享的HttpClient
。
private Windows.Web.Http.HttpClient httpClient;
初始化:
httpClient = new Windows.Web.Http.HttpClient();
var headers = httpClient.DefaultRequestHeaders;
string header = "Chrome/64.0.3282.140";
if (!headers.UserAgent.TryParseAdd(header))
{
throw new Exception("Invalid header value: " + header);
}
我将此对象用于所有请求
但是当我将其用于POST请求时,它的作用类似于GET请求或POST,但没有参数
Uri requestUri = new Uri("http://some_websit.ru");
Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("par1", "val1");
pairs.Add("par2", "val2");
HttpFormUrlEncodedContent formContent = new HttpFormUrlEncodedContent(pairs)
var result = await httpClient.PostAsync(requestUri, formContent);
string resultContent = await result.Content.ReadAsStringAsync();
它忽略了我提供的参数。
我尝试在http://seriyps.ru/postget/处发送POST请求,它可以工作。
答案 0 :(得分:0)
您的代码没有问题,我已经使用相同的代码在本地进行了测试,只是使用了不同的URL,并且POST请求与传入的参数一起正确发送:
我建议您安装Telerik Fiddler 4来查看网络流量并确认确实发送了参数。我使用http://example.com
作为此处的示例URL。我怀疑问题可能出在服务器端,而不是您的应用程序,或者服务器期望的参数与发送的参数不同。