Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Volley框架定制请求类_Android_Android Volley - Fatal编程技术网

Android 从Volley框架定制请求类

Android 从Volley框架定制请求类,android,android-volley,Android,Android Volley,我正在尝试使用来自AndroidVolley框架的定制版本的请求类。我设法获得自定义请求,但在POST中失败。我正在遍历getBody()方法并返回字节[]。但是Volley抱怨说连接已经打开了 代码: 例外情况: 05-24 21:51:08.076: E/Volley(5535): [177] NetworkDispatcher.run: Unhandled exception java.lang.IllegalStateException: Already connected 0

我正在尝试使用来自AndroidVolley框架的定制版本的请求类。我设法获得自定义请求,但在POST中失败。我正在遍历getBody()方法并返回字节[]。但是Volley抱怨说连接已经打开了

代码:

例外情况:

05-24 21:51:08.076: E/Volley(5535): [177] NetworkDispatcher.run: Unhandled exception     
java.lang.IllegalStateException: Already connected
05-24 21:51:08.076: E/Volley(5535): java.lang.IllegalStateException: Already connected
05-24 21:51:08.076: E/Volley(5535):     at java.net.URLConnection.checkNotConnected(URLConnection.java:464)
05-24 21:51:08.076: E/Volley(5535):     at java.net.URLConnection.setDoOutput(URLConnection.java:878)
05-24 21:51:08.076: E/Volley(5535):     at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:225)
05-24 21:51:08.076: E/Volley(5535):     at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:210)
05-24 21:51:08.076: E/Volley(5535):     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:106)
05-24 21:51:08.076: E/Volley(5535):     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:93)
05-24 21:51:08.076: E/Volley(5535):     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
有人用这种方式截击吗


谢谢

我认为最简单的方法是从Volley\toolbox继承JsonRequest(或JsonObjectRequest),因为这样您只需将requestBody字符串传递给超类构造函数

public JsonRequest(int method, String url, String requestBody, Listener<T> listener,
        ErrorListener errorListener) {
    super(method, url, errorListener);
    mListener = listener;
    mRequestBody = requestBody;
}
公共JsonRequest(int方法、字符串url、字符串请求体、侦听器、, ErrorListener(错误监听器){ super(方法、url、errorListener); mListener=监听器; mRequestBody=requestBody; }
您仍然可以根据需要覆盖例如parseNetworkResponse和parseNetworkError。如果您确实需要继承请求,您应该检查JsonRequest如何实现getBody()和getBodyContentType()。

我刚刚试过这个。这里没有例外。如果你在这门课上多发一些,可能会有所帮助。在此之前您是否提出过任何请求?我还重写了getHeader(),但我认为这不会引起麻烦。如果有人给我一个示例代码来发布一个文件以及一些文本元数据,这将非常有帮助。
public JsonRequest(int method, String url, String requestBody, Listener<T> listener,
        ErrorListener errorListener) {
    super(method, url, errorListener);
    mListener = listener;
    mRequestBody = requestBody;
}