我正在開發一個學校項目,該項目需要JAVA向PHP Web服務前端發送一系列條形碼。我查看了幾條帖子here和here,並從他們那裏拿到了一些東西,但我的代碼似乎不起作用。在Java中通過Httppost發送JSON時出現問題,請幫助
因此,這裏是我的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字符串在哪裏?
誰能告訴我我做錯了什麼?我在這裏呆了一段時間。謝謝!
什麼是'se'的內容來了解JSON對象(之前發佈)和'$ _POST'('的var_dump($ _ POST)')? – 2011-03-07 04:40:11
[email protected]和var_dump($ _ POST)= null。 – 2011-03-07 04:52:04
非常類似於我的情況... – gumuruh 2012-04-18 09:25:53