Ошибка в патче Volley

Com.android.volley.NoConnectionError: java.net.ProtocolException: Неизвестный метод 'PATCH'; Должен быть одним из [OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE]

StringRequest putRequest = new StringRequest(Request.Method.PATCH, url, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("Error.Response", error.toString()); } } ) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String> (); params.put("name", "My Name"); params.put("age", "11"); return params; } }; 

Вы уверены, что используете правильную версию Volley Library? Я просто попробовал свой код в Lollipop, и он работает нормально. Если вы используете библиотеку Volley как внешний проект, проверьте интерфейс Method класса Request в пакете com.android.volley. Он должен иметь переменную PATCH.

 public interface Method { int DEPRECATED_GET_OR_POST = -1; int GET = 0; int POST = 1; int PUT = 2; int DELETE = 3; int HEAD = 4; int OPTIONS = 5; int TRACE = 6; int PATCH = 7; } 

Если нет, используйте последнюю версию библиотеки Volley.

ОБНОВИТЬ:

Вы правы, он показывает эту ошибку в Kitkat, но не в Lollipop. Я предполагаю, что основная проблема заключается в том, что HTTPUrlConnection Java не поддерживает PATCH. (Я полагаю, что он работает в Lollipop, потому что он использует Java 7, а HTTPUrlConnection Java 7 поддерживает метод PATCH?) Во всяком случае, вы можете использовать OkHttp Library для исправления этой проблемы. Модуль okhttp-urlconnection реализует java.net.HttpURLConnection

Добавьте следующую папку в папку libs:
okhttp-2.2.0.jar
okhttp-URLConnection-2.2.0.jar
Окио-1.2.0.jar

Создайте класс OkHttpStack:

 package com.example.temp; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import com.android.volley.toolbox.HurlStack; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.OkUrlFactory; public class OkHttpStack extends HurlStack { private final OkUrlFactory mFactory; public OkHttpStack() { this(new OkHttpClient()); } public OkHttpStack(OkHttpClient client) { if (client == null) { throw new NullPointerException("Client must not be null."); } mFactory = new OkUrlFactory(client); } @Override protected HttpURLConnection createConnection(URL url) throws IOException { return mFactory.open(url); } } 

Используйте следующий конструктор для создания запроса волейбола:

 Volley.newRequestQueue(getApplicationContext(),new OkHttpStack()).add(putRequest); 

Сейчас он работает на Киткате.

При отправке запроса используйте POST. В заголовках просто переопределяют http-метод PATCH. Для меня теперь его работа в залпе даже в киткате.

 header.put("X-HTTP-Method-Override", "PATCH");