如何使用HttpURLConnection发布数据

13 浏览
0 Comments

如何使用HttpURLConnection发布数据

因为他们说httpclient不可用,所以我从API23更改为22。当我切换到API22时,我遇到了HttpClient、HttpPost和NameValuePair的问题。我找到了使用HttpURLConnectionHandler的解决方案。但是我不知道如何将其用于以下方法。

 public void send(View v)
{
    HttpClient httpclient = new DefaultHttpClient();
    // 将服务器地址和接收文件的地址放在这里
    HttpPost httppost = new HttpPost("http://yoursite/yourPHPScript.php");
    try {
        List nameValuePairs = new ArrayList(2);
        // 我们不会在服务器上接收参数ID,但是这里是为了向您展示如何发送更多数据
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        // message是我们接收的参数,它的值为1,这个值将从您的服务器发送到您的Arduino板上
        nameValuePairs.add(new BasicNameValuePair("message", "1"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        httpclient.execute(httppost); // 将参数发送到服务器
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

有人可以帮助我吗?

0
0 Comments

如何使用HttpURLConnection发布数据的问题出现的原因是用户需要在Android应用程序中发送POST请求来传输数据。解决方法是通过使用HttpURLConnection类来建立与服务器的连接,并设置请求方法为POST。然后,用户需要设置请求头属性,如Content-Type和Authorization。接下来,用户需要将要发送的数据对象转换为JSON格式,并将其写入连接的输出流中。最后,用户需要获取服务器的响应代码来确定请求是否成功。

为了实现这个解决方法,用户可以按照以下步骤编写代码:

1. 创建一个名为MessageSenderContent的Java类,该类实现了Serializable接口。这个类有两个属性,一个是registration_ids,一个是data。用户可以根据自己的需求对这些属性进行操作。

2. 在sendPost方法中,用户首先创建一个URL对象,然后通过调用openConnection方法来建立与服务器的连接。然后,用户设置请求方法为POST,并设置请求头属性。接下来,用户需要打开连接的输出流,并使用ObjectMapper类将数据对象转换为JSON格式,并将其写入输出流。最后,用户需要刷新和关闭输出流,并获取响应代码。

3. 根据响应代码,用户可以确定请求是否成功,并进行相应的处理。

注意:在使用HttpURLConnection之前,用户需要在build.gradle文件中添加org.apache.http.legacy库的依赖。

通过按照上述步骤编写代码,用户可以成功地使用HttpURLConnection类来发布数据。这个类提供了与服务器的连接和数据传输的功能,使用户能够在Android应用程序中发送POST请求。

0