1
因此,我正在研究一個uni項目,我已經創建了一個應用程序,我希望通過POST請求與我的服務器進行通信。Android有問題可以發送請求到我的服務器
我有代碼作爲獨立的Java文件運行時沒有問題,但是當我把代碼放到我的應用程序中時什麼也沒有發生,我一直在這裏用了大約5個小時,現在使用各種各樣的從套接字到現在簡單的POST請求的不同方法。
我已經在這裏包含了Android版本的代碼,它基本上與獨立版本相同。
//Register on the sever
String url = "myurl";
String data = "uuid:!:harry6:,:timestamp:!:1337";
postData(url, data);
}
//Method for sending data to the server
public static void postData(String urlN, String data) {
try {
data = splitArgs(data);
URL url = new URL(urlN);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
}
}
//Function which will split the arguments for HTML parsing
public static String splitArgs(String data){
HashMap<String, String> finalData = new HashMap<String, String>();
String[] data2 = data.split(":,:");
for(String d : data2){
String[] d2 = d.split(":!:");
finalData.put(d2[0].toString(), d2[1].toString());
}
String encodedString = "";
String charset = "UTF-8";
for (String key : finalData.keySet()) {
try{
encodedString += URLEncoder.encode(key, charset) + "=" + URLEncoder.encode(finalData.get(key), charset) + "&";
}catch(Exception e){
}
}
encodedString = encodedString.substring(0, encodedString.length()-1);
return encodedString;
}
任何建議都會很棒,我還啓用了清單中的Internet權限!