如何从javaPostjson数据到php服务器?
How to Post json data from java to php server?
使用 post 请求从 java 代码向服务器发送 json 数据。
我正在尝试使用 java 端的 HTTP-URL 连接在 json 中发送 ID。
这是url
http://xenzet.com/ds/getrec.php?
这是它将接收数据的格式。
{"id":null,"date":"22-Dec-18"}
我这里只需要id从java端发送到服务器。
如果我收到 id = 5
那么 json 应该是 {"id":5,"date":"22-Dec-18"}
这是 java 代码
try
{
java.net.URL urlForPostRequest = new java.net.URL("http://xenzet.com/ds/getrec.php?");
System.out.println("Instantiated new URL: " + urlForPostRequest);
Map<String ,Object> params = new LinkedHashMap<>();
params.put("id", resultant);
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForPostRequest.openConnection();
conection.setDoOutput(true);
conection.setRequestMethod("POST");
// conection.setRequestProperty("User-Agent", "Mozilla/5.0");
OutputStream os = conection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
osw.write("Just Some Text");
osw.flush();
osw.close();
os.close(); //don't forget to close the OutputStream
conection.connect();
String result1;
BufferedInputStream bis = new BufferedInputStream(conection.getInputStream());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result2 = bis.read();
while(result2 != -1) {
buf.write((byte) result2);
result2 = bis.read();
}
result1 = buf.toString();
System.out.println(result1);
}
catch(Exception ex)
{
// TODO Auto-generated catch block
ex.printStackTrace();
}
获取文件也不例外。
您的 POST API 正在接受 FORM 数据,您需要发送 id
表单数据。
考虑以下,
public class Xenzet {
public static void main(String[] args) {
try {
URL urlForPostRequest = new URL("http://xenzet.com/ds/getrec.php");
System.out.println("Instantiated new URL: " + urlForPostRequest);
final long id = 12;
HttpURLConnection conection = (HttpURLConnection) urlForPostRequest.openConnection();
conection.setDoOutput(true);
conection.setRequestMethod("POST");
conection.setRequestProperty("User-Agent", "Mozilla/5.0");
conection.getOutputStream().write(("id="+id).getBytes(StandardCharsets.UTF_8));
conection.connect();
BufferedInputStream bis = new BufferedInputStream(conection.getInputStream());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int resultBuffer = bis.read();
while (resultBuffer != -1) {
bos.write((byte) resultBuffer);
resultBuffer = bis.read();
}
String result = bos.toString();
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
输出:
Instantiated new URL: http://xenzet.com/ds/getrec.php
{"id":"12","date":"22-Dec-18"}
使用 post 请求从 java 代码向服务器发送 json 数据。
我正在尝试使用 java 端的 HTTP-URL 连接在 json 中发送 ID。
这是url http://xenzet.com/ds/getrec.php?
这是它将接收数据的格式。 {"id":null,"date":"22-Dec-18"}
我这里只需要id从java端发送到服务器。
如果我收到 id = 5 那么 json 应该是 {"id":5,"date":"22-Dec-18"} 这是 java 代码
try
{
java.net.URL urlForPostRequest = new java.net.URL("http://xenzet.com/ds/getrec.php?");
System.out.println("Instantiated new URL: " + urlForPostRequest);
Map<String ,Object> params = new LinkedHashMap<>();
params.put("id", resultant);
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForPostRequest.openConnection();
conection.setDoOutput(true);
conection.setRequestMethod("POST");
// conection.setRequestProperty("User-Agent", "Mozilla/5.0");
OutputStream os = conection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
osw.write("Just Some Text");
osw.flush();
osw.close();
os.close(); //don't forget to close the OutputStream
conection.connect();
String result1;
BufferedInputStream bis = new BufferedInputStream(conection.getInputStream());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result2 = bis.read();
while(result2 != -1) {
buf.write((byte) result2);
result2 = bis.read();
}
result1 = buf.toString();
System.out.println(result1);
}
catch(Exception ex)
{
// TODO Auto-generated catch block
ex.printStackTrace();
}
获取文件也不例外。
您的 POST API 正在接受 FORM 数据,您需要发送 id
表单数据。
考虑以下,
public class Xenzet {
public static void main(String[] args) {
try {
URL urlForPostRequest = new URL("http://xenzet.com/ds/getrec.php");
System.out.println("Instantiated new URL: " + urlForPostRequest);
final long id = 12;
HttpURLConnection conection = (HttpURLConnection) urlForPostRequest.openConnection();
conection.setDoOutput(true);
conection.setRequestMethod("POST");
conection.setRequestProperty("User-Agent", "Mozilla/5.0");
conection.getOutputStream().write(("id="+id).getBytes(StandardCharsets.UTF_8));
conection.connect();
BufferedInputStream bis = new BufferedInputStream(conection.getInputStream());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int resultBuffer = bis.read();
while (resultBuffer != -1) {
bos.write((byte) resultBuffer);
resultBuffer = bis.read();
}
String result = bos.toString();
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
输出:
Instantiated new URL: http://xenzet.com/ds/getrec.php
{"id":"12","date":"22-Dec-18"}