如何使用POST查询上传数据?

时间:2012-06-17 13:07:24

标签: java android

我遇到以下问题:我正在开发需要在服务器上进行授权并将数据从我的手机上传到其中的应用程序。服务器端已准备就绪并且工作正常。因此,为了授权,我使用以下代码:

URL url = new URL(VALIDATING_URL);
                URLConnection connection=url.openConnection();
                connection.setDoOutput(true);
                PrintWriter out=new PrintWriter(connection.getOutputStream());
                out.print(POST_QUERY_EMAIL+email);
                out.print("&");
                out.print(POST_QUERY_PASS+password);
                out.print("&");
                out.print(POST_QUERY_CHANNEL+channel);
                out.close();
                Scanner in=new Scanner(connection.getInputStream());
                StringBuilder result=new StringBuilder();
                while (in.hasNextLine()) {
                    result.append(in.nextLine());
                    result.append("\n");
                }
                in.close();

它正常工作,如果输入正确的数据,应用程序将获得所需的结果。所以,现在我需要使用POST查询将数据上传到服务器,但我不知道如何做到这一点。使用HTML表单,视频通常使用'userfile'变量上传,并将从PHP scipts中的$ _FILES数组中获取。我怎样才能从Java上传呢?我可以从InputStream中将数据打印到PrintStream中吗?

谢谢,我希望你能帮助我

2 个答案:

答案 0 :(得分:1)

试试这个,

public void postData() throws Exception {


 HttpClient client = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("https://www.xyz.com");

 List<NameValuePair> list = new ArrayList<NameValuePair>(1);

 list.add(new BasicNameValuePair("name","ABC");

 httppost.setEntity(new UrlEncodedFormEntity(list));

 HttpResponse r = client.execute(httppost);

}

答案 1 :(得分:0)

我建议阅读this。它向您展示了如何使用URLConnection进行POST并解释发生了什么。