我正在尝试从Web API发布一个JsonObject使用HttpClient.我不太确定如何解决这个问题,并且在示例代码方面找不到多少内容.
这是我到目前为止所拥有的:
var myObject = (dynamic)new JsonObject();
myObject.Data = "some data";
myObject.Data2 = "some more data";
HttpClient httpClient = new HttpClient("myurl");
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = httpClient.Post("", ???);
Run Code Online (Sandbox Code Playgroud)
我想我需要把我JsonObject当成一个StreamContent但是我已经挂了这一步.
有没有人知道如何使用HttpClient.Net 4.5 multipart/form-data上传?
我在互联网上找不到任何例子.
我正在使用以下代码向服务器发布消息。
String credentials="email=me@here.com&pass=abc123";
using (HttpClient client = new HttpClient())
{
HttpResponseMessage message = await client.PostAsync(
url, new StringContent(credentials));
result = await message.Content.ReadAsStringAsync();
}
Run Code Online (Sandbox Code Playgroud)
但是,服务器会回复一条错误消息,指出电子邮件或通行证不存在。
{\"状态\":\"错误\",\"消息\":\"缺少电子邮件或密码\"}
现在,我可以看到它在撒谎,但是可以做些什么呢?我是否没有提供凭据作为发布数据(相当于从 FF 中的 URL 行调用时可以看到的“参数”,如下图所示?
我还注意到,当我访问如下所示的RequestMessage 时,我得到了 URL,但没有发送任何凭据。我错过了什么愚蠢的事情?!
result = message.RequestMessage.ToString();
Run Code Online (Sandbox Code Playgroud)
这个结果给了我以下字符串。
方法:POST,RequestUri:'https://server.com/gettoken',版本:1.1,内容:System.Net.Http.StringContent,标题:\u000d\u000a{\u000d\u000a 内容类型:text/plain ; 字符集=utf-8\u000d\u000a 内容长度:56\u000d\u000a}
