2017-03-08 6 views
1

私は認証サーバーに投稿メッセージを送信しようとしていますが、私はpostforobjectを使用しています。 「:401ヌルorg.springframework.web.client.HttpClientErrorException 『エラーRestTemplate postForObject return HttpClientErrorException:401 null

RestTemplate rest = new RestTemplate(); 
    String responseEntity; 
    String uri = "http://..."; 
    responseEntity = rest.postForObject(uri, null, String.class); 
    System.out.println(responseEntity); 

また、私は、

responseEntity = rest.postForObject(uri, "", String.class); 

同じ結果を試みたが、私はプログラムを実行すると、私は、』スレッドの例外」メインは取得していますそれはうまくいかなかった。

それは enter image description here

任意のアイデアを作品私はシンプルレストクライアントを使用していますか?シンプルなRESTクライアントは、(再)Chromeのクッキーを使用しています。

+0

nullの代わりに空の文字列を試しましたか? –

+0

はい私は試しました。それは動作しませんでした – Sefa

+0

どのように認証パラメータを送信していますか? – Coder

答えて

4

401 nullはおそらく、サーバーが認証のいくつかのフォームを期待したがどれも

最も可能性の高い説明がある(あなたの要求で、すなわち何のAuthorizationヘッダー)を提示しなかったことを意味します。以前にフォーム・ログインを使用してサービスに対して認証していた場合、Simple Rest ClientはJSESSIONID Cookieを再利用します。これを検出するには、単にF12を押して、デバッガのネットワークタブを開きます。参考までに、他のブラウザプラグイン、たとえば"Advanced REST Client"があります。これにより、サーバーに送信されているものをより詳細に把握できます。

restTemplateを使用してリクエストを送信すると、(期待される)セッションCookieにアクセスできません。匿名アクセスを許可するURIに投稿するか、要求に何らかの形式の認証を提供する必要があります。追加のヘルプが必要な場合は、セキュリティ設定を投稿してください。