如何使用 HttpURLConnection 发出 JSON POST 请求,我尝试了此代码,但出现错误:
btn = (Button)findViewById(R.id.bbon);
btn.setOnClickListener(new View.OnClickListener()
{
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View v)
{
try {
URL url = new URL ("https://reqres.in/api/users");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");
con.setDoOutput(true);
String jsonInputString = "{'name': 'Table3', 'job': 'gg12344'}";
try(OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
try(BufferedReader br = new BufferedReader(
new InputStreamReader(con.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine = null;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
System.out.println(response.toString());
Toast.makeText(getApplicationContext(),response.toString(),Toast.LENGTH_SHORT).show();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
我添加了对 INTERNET 和 ACCESS_NETWORK_STATE 的权限。