我正在尝试在C#UWP应用中向特定端点发出POST请求。我得到的结果只是主页上的HTML。在查看请求时,我指定了整个端点,但是在发出请求时,它只是命中了主机(没有端点)。
我正试图发布至:http://ip-address/api/devices/logs
URI正在发布到:http://ip-address
代码:
Uri requestUri = new Uri("http://ip-address/api/devices/logs");
var objClint = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage respon = await objClint.PostAsync(requestUri , new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(text), System.Text.Encoding.UTF8, "application/json"));
string responJsonText = await respon.Content.ReadAsStringAsync();
我打算取回POST请求的结果(如创建的对象),但我只是从主页/登录页面获取HTML。
我尝试设置objClient的BaseAddress
并仅通过端点的其余部分,将整个端点作为PostAsync
中的参数,并添加UriKind.Absolute
。 / p>
我真的不知道该怎么办。
如果我在相同的URI上运行GetAsync
,它不会缩短请求URI并给出正确的响应。
我可以从这里做什么?
答案 0 :(得分:0)
当我测试您的代码段时,它可以按预期工作。您确定在此路线上可以使用POST吗?代码可能不会截断URL,而返回只是重定向。我会先检查一下。
无论哪种方式,如果您想尝试另一种也可以起作用的方式,则这是使请求具有相同依赖性的另一种方式。
var baseUri = new Uri("http: //ip-address/");
var route = "/api/devices/logs";
using (var objClint = new HttpClient())
{
objClint.BaseAddress = baseUri;
var respon = await objClint.PostAsync(route, new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new { text = "text" }), System.Text.Encoding.UTF8, "application/json"));
}