我正在尝试使用post
发送HTTP HTTP client
请求。在使用Content-Type
方法设置StringContent
标头时,我收到错误消息:
格式“application / json; ty = 2”不正确
我的代码如下:
string result2 = JsonConvert.SerializeObject(values);
var content = new StringContent(result2, Encoding.UTF8, "application/json; ty=2");
var response = await client.PostAsync("http://127.0.0.1:8080/~/in-cse/in-name", content);
var response_string = await response.Content.ReadAsStringAsync();
但在我的HTTP Post格式中,我必须包含ty=2
参数和application/json
。我用Postman
对此进行了测试,结果非常好。我怎样才能在这里实现同样的目标。我甚至发现你可以用以下格式将参数添加到内容类型:
content := "Content-Type" ":" type "/" subtype *(";" parameter)
那么为什么它不适合我。
**编辑:**甚至试过这个:
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://127.0.0.1:8080/~/in-cse/in-name");
request.Content = new StringContent(result2, Encoding.UTF8, "application/json;ty=2");
client.SendAsync(request).ContinueWith(resposetask => { Console.WriteLine("response:{0}", resposetask.Result); });
我得到同样的错误
答案 0 :(得分:0)
您必须使用TryAddWithoutValidation
DefaultRequestHeaders
中的HttpClient
,如下所示:
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json;ty=2");