我怎么知道 post 请求是否成功
Ho do I know if a post request has been successful
我正在向此端点 http://httpbin.org/post
发出 post 请求,它应该 return 我发出的 post,这将是 String data = "something to post";
但我没有' 知道 post 请求是否成功。我怎样才能知道?
这里是我使用的代码:
public class Post extends AsyncTask <String, String, String>{
@Override
protected String doInBackground(String... strings) {
String urlString = "http://httpbin.org/post"; // URL to call
Log.d("Blyat", urlString);
String data = "something to post"; //data to post
OutputStream out = null;
try {
URL url = new URL(urlString);
Log.d("Post", String.valueOf(url));
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
out = new BufferedOutputStream(urlConnection.getOutputStream());
Log.d("Post", String.valueOf(out));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write(data);
writer.flush();
writer.close();
out.close();
urlConnection.connect();
Log.d("Post", String.valueOf(urlConnection));
} catch (Exception e) {
System.out.println(e.getMessage());
}
String algo = "blure";
return algo;
}
}
从 URLConnection 写入 OutputStream 后,您必须检查连接对象的状态代码。
int statusCode = connection.getStatusCode();
如果成功 (== 200),那么您可以通过从连接的 InputStream 获取响应来读取它。
BufferedReader reader = new BufferedReader(connection.getInputStream());
您通常会将响应转换为这样的字符串:
is = connection.getInputStream();
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
String response = writer.toString();// have the body from response as String
我正在向此端点 http://httpbin.org/post
发出 post 请求,它应该 return 我发出的 post,这将是 String data = "something to post";
但我没有' 知道 post 请求是否成功。我怎样才能知道?
这里是我使用的代码:
public class Post extends AsyncTask <String, String, String>{
@Override
protected String doInBackground(String... strings) {
String urlString = "http://httpbin.org/post"; // URL to call
Log.d("Blyat", urlString);
String data = "something to post"; //data to post
OutputStream out = null;
try {
URL url = new URL(urlString);
Log.d("Post", String.valueOf(url));
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
out = new BufferedOutputStream(urlConnection.getOutputStream());
Log.d("Post", String.valueOf(out));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write(data);
writer.flush();
writer.close();
out.close();
urlConnection.connect();
Log.d("Post", String.valueOf(urlConnection));
} catch (Exception e) {
System.out.println(e.getMessage());
}
String algo = "blure";
return algo;
}
}
从 URLConnection 写入 OutputStream 后,您必须检查连接对象的状态代码。
int statusCode = connection.getStatusCode();
如果成功 (== 200),那么您可以通过从连接的 InputStream 获取响应来读取它。
BufferedReader reader = new BufferedReader(connection.getInputStream());
您通常会将响应转换为这样的字符串:
is = connection.getInputStream();
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
String response = writer.toString();// have the body from response as String