我想使用volley库向服务器发出一个简单的post请求,请求正文中包含xml格式的数据。
是否可以使用stringrequest实现这一点?
提前谢谢!
最佳答案
无法对自定义正文使用StringRequest
。但是您可以扩展StringRequest
或Request
来覆盖getBody()
方法。
以下是最简单的方法:
public class CustomBodyStringRequest extends StringRequest {
private final String requestBody;
public CustomBodyStringRequest(String url, String requestBody, Response.Listener<String> listener,
Response.ErrorListener errorListener) {
super(Method.POST, url, listener, errorListener);
this.requestBody = requestBody;
}
@Override
public byte[] getBody() throws AuthFailureError {
byte[] body = null;
if (!TextUtils.isEmpty(this.requestBody)) {
try {
body = requestBody.getBytes(getParamsEncoding());
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Encoding not supported: " + getParamsEncoding(), e);
}
}
return body;
}
}
您可能还想用类似于
getBodyContentType()
的内容覆盖application/xml
。