2016-04-28 7 views
0

Retrofitでデータを私のサーバーにPATCHしようとしています(APIの休息)。Retrofit:java.net.ProtocolException:不明なメソッド 'PATCH'

私はretrofit 1.9.0を使用しています。

D/Retrofit: ---> HTTP PATCH http://myserver/... 
.... 
D/Retrofit: ---> END HTTP (220-byte body) 
D/Retrofit: ---- ERROR http://myserver/... 
D/Retrofit: java.net.ProtocolException: Unknown method 'PATCH'; must be one of [OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE] 
    at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:665) 
    at retrofit.client.UrlConnectionClient.execute(UrlConnectionClient.java:37) 
    at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:326) 
    at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220) 
    at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278) 
    at retrofit.CallbackRunnable.run(CallbackRunnable.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
    at retrofit.Platform$Android$2$1.run(Platform.java:142) 
    at java.lang.Thread.run(Thread.java:856) 
D/Retrofit: ---- END ERROR 

私はそれを解決する方法がわかりません。何かご意見は ?

答えて

2

改造ドキュメントを見ると、2.0以降でサポートされているようです。それ以外の場合は、使用するgradle依存関係を更新してください。

dependencies { 
    compile 'com.squareup.retrofit:retrofit:1.9' 
    compile 'com.squareup.okhttp:okhttp:2.0.0' 
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' 
} 

問題は組み込みのHttpUrlConnectionです。代わりに OkHttpまたはApache HttpClientを使用する必要があります。

私は、新しいバージョンのレトロフィットに更新し、面倒を避けることをお勧めします。

+0

ありがとう、それは私がokhttp依存関係を追加するのを助けました – Mrinmoy

関連する問題