如何在 Android 中使用 volley 库 post 实体?
How to post entity using volley library in Android?
如何使用volley实现以下代码?我需要 post 并从服务器接收答复。
HttpURLConnection urlConnection = (HttpURLConnection) postUrl.openConnection();
urlConnection.setInstanceFollowRedirects(false);
// urlConnection.setHostnameVerifier(hostnameVerifier);
urlConnection.setConnectTimeout(5000);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
urlConnection.setRequestProperty("User-Agent", USER_AGENT);
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
//Send request
OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
out.write(data);
out.close();
//Get Response
InputStream is = urlConnection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null)
{
response.append(line);
response.append('\r');
}
rd.close();
ret = response.toString();
您可以覆盖请求中的适当方法 class。
对于字符串请求:
Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//consume response
}
};
StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> header = new HashMap<>();
header.put("User-Agent", USER_AGENT);
header.put("Content-Type", "application/x-www-form-urlencoded");
...
return header;
}
@Override
public byte[] getBody() throws AuthFailureError {
String someContent = "{\"key\"=\"\value\"}";
return someContent.getBytes();
}
};
然后将请求添加到您的请求队列:
RequestQueue queue = Volley.newRequestQueue(context);
queue.add(request);
如何使用volley实现以下代码?我需要 post 并从服务器接收答复。
HttpURLConnection urlConnection = (HttpURLConnection) postUrl.openConnection();
urlConnection.setInstanceFollowRedirects(false);
// urlConnection.setHostnameVerifier(hostnameVerifier);
urlConnection.setConnectTimeout(5000);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
urlConnection.setRequestProperty("User-Agent", USER_AGENT);
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
//Send request
OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
out.write(data);
out.close();
//Get Response
InputStream is = urlConnection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null)
{
response.append(line);
response.append('\r');
}
rd.close();
ret = response.toString();
您可以覆盖请求中的适当方法 class。
对于字符串请求:
Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//consume response
}
};
StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> header = new HashMap<>();
header.put("User-Agent", USER_AGENT);
header.put("Content-Type", "application/x-www-form-urlencoded");
...
return header;
}
@Override
public byte[] getBody() throws AuthFailureError {
String someContent = "{\"key\"=\"\value\"}";
return someContent.getBytes();
}
};
然后将请求添加到您的请求队列:
RequestQueue queue = Volley.newRequestQueue(context);
queue.add(request);