我正在尝试在 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。我已经尝试设置BaseAddressobjClient 并仅通过端点的其余部分,将整个端点作为 in 中的参数传递PostAsync,然后添加UriKind.Absolute.我真的不知道从这里做什么。如果我GetAsync在同一个 URI 上运行,它不会缩短请求 URI 并给出正确的响应。我能从这里做什么?
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
当我测试您的代码片段时,它按预期工作。您确定 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"));
}
- 1 回答
- 0 关注
- 329 浏览
添加回答
举报
0/150
提交
取消