Volley利用する際にはシングルトンで利用するため、こんな感じのクラスを用意していると思います
public class VolleySingleton {
private static VolleySingleton mInstance = null;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private VolleySingleton(){
mRequestQueue = Volley.newRequestQueue(MyApplication.getAppContext());
}
public static VolleySingleton getInstance(){
if(mInstance == null){
mInstance = new VolleySingleton();
}
return mInstance;
}
Volleyでpatchメソッドに投げると
com.android.volley.NoConnectionError: java.net.ProtocolException: Connection already established
at >com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:134)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:110)
Caused by: java.net.ProtocolException: Connection already established
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:633)
at >com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:227)
at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:106)
at >com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
... 1 more
ネットワークプロトコルが正しく実行できなかったよ的な例外が発生します。
対応としてはRequestQueueの作成にcom.android.volley.toolbox.HttpStackを利用します。
public class VolleySingleton {
private static VolleySingleton mInstance = null;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private VolleySingleton(){
String ua = "user_agent";
HttpStack httpStack = new HttpClientStack(AndroidHttpClient.newInstance(ua));
mRequestQueue = Volley.newRequestQueue(MyApplication.getAppContext(), httpStack);
}
public static VolleySingleton getInstance(){
if(mInstance == null){
mInstance = new VolleySingleton();
}
return mInstance;
}
これでpatchメソッドのurlにリクエストしても例外が発生せずにレスポンスを取得することができます。
※ソース切り貼りしてるので動作確認してません
参考
http://stackoverflow.com/questions/22411475/android-volley-http-patch-request