gpt4 book ai didi

java - 在 Java 中通过 Httppost 发送 JSON 时遇到问题,请帮助

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:25 24 4
gpt4 key购买 nike

我正在做一个学校项目,它需要 JAVA 将一系列条形码发送到 php web 服务前端。我查看了 herehere 的几个帖子,并从中获取了一些东西,但我的代码似乎不起作用。

这是我的 JAVA 代码:

import org.json.simple.JSONObject;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import org.apache.http.entity.StringEntity;
import org.apache.http.HttpResponse;
import java.io.InputStream;


public class jsontest2 {
public static void main (String Args[]) {
JSONObject obj=new JSONObject();
JSONObject codes=new JSONObject();
//Forms the name value pairs for the barcodes and quantity
codes.put("598013", new Integer(10));
codes.put("5849632927",new Integer(15));
codes.put ("5849676037",new Integer(20));
codes.put ("6634391931", new Integer(25));

//Headers in the JSON array
obj.put("LoginID", new Integer(1234));
obj.put("Machine_ID", new Integer(123456789));
obj.put("add", codes);
System.out.print(obj);

//httppost
try {
HttpClient httpclient= new DefaultHttpClient();
HttpResponse response;
HttpPost httppost= new HttpPost ("http://example/receive.php");
StringEntity se=new StringEntity ("myjson: "+obj.toString());
httppost.setEntity(se);
System.out.print(se);
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");

response=httpclient.execute(httppost);

}
catch (Exception e) {
e.printStackTrace();
System.out.print("Cannot establish connection!");
}
}
}

为了测试 httppost 请求,我制作了这个 php 文件来记录每个请求。

<?php
$input = stripslashes($_POST["myjson"]);
logToFile("post.txt", $input);

function logToFile($filename, $msg)
{
$fd = fopen($filename, "a");
$str ="[".date("Y/m/d h:i:s")."]".$msg;
fwrite($fd, $str."\n");
fclose($fd);
}

问题是,在日志文件 log.txt 中,每次运行 JAVA 程序时,它只添加一个包含时间和日期的新行。对我来说,这意味着 php 发现有一个 httppost 请求,但是我的 json 字符串在哪里?

谁能告诉我我做错了什么?我被困在这里有一段时间了。谢谢!

最佳答案

看起来您正在做一个原始的 HTTP post,所以 PHP 代码需要考虑到这一点。对于 PHP 代码,试试这个:

<?php
$input = file_get_contents('php://input');
logToFile("post.txt",$input);

function logToFile($filename,$msg)
{
$fd=fopen($filename,"a");
$str="[".date("Y/m/d h:i:s")."]".$msg;
fwrite($fd,$str."\n");
fclose($fd);
}
?>

查看此答案和各种链接以获取更多信息:

php curl post json

关于java - 在 Java 中通过 Httppost 发送 JSON 时遇到问题,请帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com