从Android应用程序发布

时间:2016-05-02 09:38:29

标签: java android http post

我目前正在尝试编写一个Android应用程序,它只需按下按钮即可将数据发送到服务器。

我已经按照这里的其他帖子尝试让这个工作,但它不想打球。我似乎只是在努力与Android Studio和java语言搏斗,这是一种耻辱,因为我想要喜欢java。在其他语言中发布是如此简单。

当我启动Wireshark并按下应用程序上的按钮时,虽然没有应用程序层数据,但我可以看到端口80上的数据包通过。

请参阅下面我的httpHelper类的代码。它基本上改编自完整参考书(第9版)中提供的示例(用于GET请求),然后根据我从Stack Overflow收集的信息进行POST调整:

public class httpHelper {
String url;
public httpHelper(String hturl){
    url = hturl;
}
//Literally no idea why this isn't working.
void postData(String qString) throws Exception{
    URL hp = new URL(url);
    HttpURLConnection hpCon = (HttpURLConnection) hp.openConnection();
    hpCon.setDoOutput(true);
    hpCon.setRequestMethod("POST");
    hpCon.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
    hpCon.setRequestProperty( "charset", "utf-8");
    hpCon.setDoInput(true);
    hpCon.setUseCaches(false);
    byte[] postString = qString.getBytes(Charset.forName("UTF-8"));
    hpCon.setRequestProperty("Content-Length", Integer.toString(postString.length));
    try{
        DataOutputStream wr = new DataOutputStream( hpCon.getOutputStream());
        wr.write(postString);
    }catch(Exception e){
        e.printStackTrace();
    }
}}

1 个答案:

答案 0 :(得分:0)

使用Volley库进行联网。通过一个巨大的因素减轻负担。 Here's一个例子。