您确定使用的Volley
Library版本正确吗?我刚刚在Lollipop中尝试了您的代码,它工作正常。如果您将Volley库用作外部项目,请检查com.android.volley包中Request类的Method接口。它应该有一个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中未显示。我猜主要的问题是Java的HTTPUrlConnection不支持PATCH。(我猜它在Lollipop中起作用,因为它使用的是Java
7,而Java 7的HTTPUrlConnection支持PATCH方法?)不管怎样,您可以使用OkHttp库来纠正此问题。okhttp-
urlconnection模块实现java.net.HttpURLConnection
将以下jar添加到您的libs文件夹中:
okhttp-2.2.0.jar
okhttp-urlconnection-2.2.0.jar
okio-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 RequestQueue:
Volley.newRequestQueue(getApplicationContext(),new OkHttpStack()).add(putRequest);
现在它正在Kitkat上为我工作。



