首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用HttpClient C# .Net6发送自定义内容类型

使用HttpClient C# .Net6发送自定义内容类型
EN

Stack Overflow用户
提问于 2022-02-27 14:30:58
回答 1查看 556关注 0票数 1

你好,Stackoverflow社区。我希望这里有人能帮我!!

我试图与Zoopla集成,该API要求post请求发送以下自定义的内容类型。(我把证书方面的事情做得很好)

代码语言:javascript
运行
复制
application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json

我尝试了以下方法,但没有成功(它们都会导致以下错误)

代码语言:javascript
运行
复制
System.FormatException: 'The format of value 'application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json' is invalid.'

  1. 的初始方法是在RequestMessage的内容中设置它。

var HttpRequestMessage=新的RequestUri (){RequestUri=新Uri(“https://realtime-listings-api.webservices.zpg.co.uk/sandbox/v1/listing/list"”,Method = HttpMethod.Post,Content = new (jsonBody,Encoding.UTF8,"application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json") };

  1. ,当它不起作用时,我尝试通过默认的标题来设置它(下面的client来自ClientFactory)

client.DefaultRequestHeaders.Add("Content-Type","application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json");

  1. 我的最后一次尝试是在没有验证的情况下设置它

client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type","application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json");

  1. ,我刚刚尝试了另一种不幸不起作用的东西

string header = "application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json";client.DefaultRequestHeaders.Accept.Add(新的client.DefaultRequestHeaders.Accept.Add)

我真是不知所措!!救命:-)

EN

回答 1

Stack Overflow用户

发布于 2022-10-11 18:27:21

Content-Type设置在内容上,而不是在DefaultRequestHeaders中。您可以尝试对请求内容使用TryAddWithoutValidation

代码语言:javascript
运行
复制
var content = new StringContent("hello");
content.Headers.ContentType = null; // zero out default content type
content.Headers.TryAddWithoutValidation("Content-Type", "application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json");

var client = new HttpClient(); // note: use IHttpClientFactory in non-example code
var response = await client.PostAsync("https://postman-echo.com/post", content);
Console.WriteLine(response.StatusCode); // OK
Console.WriteLine(await response.Content.ReadAsStringAsync());
// {"args":{},"data":{},"files":{},"form":{},"headers":{"x-forwarded-proto":"https","x-forwarded-port":"443","host":"postman-echo.com","x-amzn-trace-id":"Root=1-6345b568-22cc353761f361483f2c3157","content-length":"5","content-type":"application/json;profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.2/schemas/listing/list.json"},"json":null,"url":"https://postman-echo.com/post"}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71285584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档