2016-03-29 9 views
0

トークンとdeviceidという2つのヘッダーを追加する必要があるAPIを起動しようとしています。以下は、ヘッダーを追加するための私のコードです:応答でAndroidでのHTTPリクエストのヘッダーの問題

 DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(nameValuePairs[0].get(0).getValue().toString()); 
     nameValuePairs[0].remove(0); 

     ResponseHandler<String> res = new BasicResponseHandler(); 

     // set header 

     httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
     httpPost.setHeader("deviceid", "358978060711939"); 
     httpPost.setHeader("token", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJHVUlEIjoiYjdlNjZiOWQtMjBjNy00MGI2LTliMzgtOTc3OGQ2OWIwM2E1IiwiRU5USVRZIjoiRUFCTSIsIlVOSVQiOiJVQk0yIiwiUk9MRU5BTUUiOiJTRUxGIiwiSUQiOiIwMDAyMzciLCJBTFRJRCI6IjMzMyIsIlVTRVJfTkFNRSI6IkFuaWwiLCJMT0dJTl9HVUlEX0tFWSI6ImU2NWM2YWEzLTZlNDItNDUyYS1hOGEwLWRlYzRhMGRiNTIxNyIsImlhdCI6MTQ1OTI0ODkyM30.m742d9xd6XlBBjZ3_ODWuoCEdWvSkhPAuNrDee1vi74"); 

     httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs[0])); 
     response = httpClient.execute(httpPost, res); 

私は取得しています:org.apache.http.client.HttpResponseException:私は任意の英数字の値でトークンを交換するとき、私はその後、

が見つかりませんがエラーメッセージで応答しています。しかし、私は上記の実際のトークンの値を渡したとき、私は例外を取得しています。 addHeader関数でも同じ問題が発生しました。このエラーを解決する方法を理解できません。

+0

この –

+0

に関するウェブサービス開発者に相談する前に、私のコードが正しいかどうかを確認してください。間違いは私の最後にあってはならない。 –

+0

が見つかりません。デバイスIDまたはトークンのいずれかが無効な場合に発生します。 –

答えて

1

エラーの原因となっているハンドラです。使用しないでください。 独自のハンドラを記述するか、ハンドラなしでexecuteを呼び出す必要があります。

httpClient.execute(httpPost);//remove the handler 

私はこれが役に立ちそうです。ありがとうございました

+0

ありがとう...ありがとうございます ハンドラを削除するのはなぜですか? –

+0

それは私はあなたがサーバー – Jois

+0

org.apache.http.client.HttpResponseExceptionから取得しているか応答を知ることができる前に: org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:76)で が見つかりませんこれはあなたのロジックを試す前に私がサーバから取得していたエラーです。 その後、私はJSON形式で適切な応答を得ました –

0

あなたのトークンは間違っているようです。 HTTPプロトコルで設定されたヘッダーには独自の制限があります。これをチェックするには、トリムトークン(ex 30文字)を送信してみてください。

役立たない場合は、別のパラメータが間違っています。とにかく、私はあなたに助言を与えるだろうRetrofitを使用する。

関連する問題