2016-05-10 8 views
1

私はhttpjとfirefoxでうまく動作するdjango restフレームワークWebサービスを利用しています:httpieでリクエストするとjson形式の回答があり、フォーマットされたもの(httpieはhttpクライアントです)。 サービスと通信するためにJava APIを構築しています。私は要求を実行するためにURLクラスを使用しています。 content-typeプロパティをオーバーライドしないと、サーバーからhtml形式の回答を受け取ることができます。だから私はhttpieは、このプロパティをオーバーライドする方法を見て、同じことをやった:django rest frameworkサービスのJava HTTPリクエストは、http 406の例外をスローします

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

今の通信は、クライアントが答えを受け入れることができないことを意味のHttp 406エラーで終わります。

私は何のエラーを持っていないだけで、コンテンツタイプのプロパティを使用している場合は、まだHTML形式の答え

、誰もがそれを解決する方法を知っていますか?

EDIT(リクエストヘッダを付加):

httpie: GET /match/39.3280114/16.241917599999965/0/5/ HTTP/1.1 ホスト:127.0.0.1:8001 接続:キープアライブ 受け入れ-encoding:gzipで、収縮させる 受け入れ:/ のUser-Agent:HTTPie/0.9.3

のjava-API GET /match/39.3280114/16.241917599999965/0/5/ HTTP/1.1 ホスト:127.0を。 0.1:8001 受け入れエンコード:gzipで、収縮させる 受け入れ:** のUser-Agentを:Javaの-API解決

:プロパティ

+0

あなたが要求の完全なヘッダを表示することができますか? –

答えて

1

あなたAcceptヘッダが不正な形式であるを受け入れるために、私は間違ってスラッシュを使用していました。それは:

Accept: */* 

RFC 7231 § 5.3.2を参照してください。

しかし、*/*「は、任意のメディアタイプを。」を意味し、あなたが実際に特定のメディアタイプ(JSON)をしたい場合は、あなたがそれを要求する必要があります

Accept: application/json 
+0

それは問題だった、ありがとう。 – user3415993

関連する問題