gpt4 book ai didi

Java http请求django rest framework服务抛出http 406异常

转载 作者:可可西里 更新时间:2023-11-01 17:33:59 26 4
gpt4 key购买 nike

我有一个与 httpie 和 firefox 一起工作的 django rest 框架网络服务:当我用 httpie 请求时,我有一个 json 格式的答案,当我用 firefox 请求一个 html 格式的答案时(httpie 是一个 http 客户端)。现在我正在构建 java API 来与服务进行通信。我正在使用 URL 类来执行请求。如果我不覆盖 content-type 属性,我可以从服务器接收 html 格式的答案。所以我查看了 httpie 如何覆盖此属性并做了同样的事情:

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
connection.setRequestProperty("Accept", "*\\*");

现在通信以Http 406错误结束,这意味着客户端不能接受应答。

如果我只使用 content-type 属性我没有错误但仍然是 html 格式的答案

有人知道怎么解决吗?

编辑(添加请求的 header ):

httpie: 获取/匹配/39.3280114/16.241917599999965/0/5/HTTP/1.1 主机:127.0.0.1:8001 连接:保持 Activity 状态 接受编码:gzip、deflate 接受:/ 用户代理:HTTPie/0.9.3

java API 获取/匹配/39.3280114/16.241917599999965/0/5/HTTP/1.1 主机:127.0.0.1:8001 接受编码:gzip、deflate 接受: ** 用户代理:Java-API

已解决:我对 Accept 属性使用了错误的斜杠

最佳答案

您的 Accept header 格式不正确。应该是:

Accept: */*

参见 RFC 7231 § 5.3.2 .

但是,*/* 表示“任何媒体类型”。如果您确实需要特定的媒体类型 (JSON),您应该请求它:

Accept: application/json

关于Java http请求django rest framework服务抛出http 406异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37142410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com