0
我已經多次使用這個函數,並且通過了幾乎所有Q和A的這個問題。但是,我仍然無法正確發送POST請求到PHP。我使用目前的代碼是:PHP沒有收到來自java的POST請求
public static void main(String[] args){
Map<String, String> m = new HashMap<String, String>();
m.put("key", generateCode());
try {
logData("http://example.com/data", m);
} catch (Exception e) {
System.out.println("There was an error");
}
}
public static void logData(String url, Map<String, String> data) throws Exception {
URL siteUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
Set keys = data.keySet();
Iterator keyIter = keys.iterator();
String content = "";
for(int i=0; keyIter.hasNext(); i++) {
Object key = keyIter.next();
if(i!=0) {
content += "&";
}
content += key + "=" + URLEncoder.encode(data.get(key), "UTF-8");
}
System.out.println(content);
out.writeBytes(content);
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
while((line=in.readLine())!=null) {
System.out.println(line);
}
in.close();
}
發送POST請求,我的PHP是:
<?php
echo $_POST['key'];
我總是用錯誤Notice: Undefined index: key in /var/www/html/data/index.php on line 2
返回。
是'關鍵'字面你的實際發佈關鍵名稱?嘗試打印'$ _POST'來驗證您的密鑰名稱 - >'<?php print_r($ _ POST); ?> – Sean 2014-10-27 02:33:13
它返回一個空集 – 2014-10-27 02:53:19
然後,這是一個java問題,我什麼都不知道,對不起。祝你好運。 – Sean 2014-10-27 02:57:54