`
hallywang
  • 浏览: 7319 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

java.net.HttpURLConnection 发送http body post json/xml数据的坑

阅读更多

 

如下是简单的写法:

 

       URL url = new URL("http://127.0.0.1:8080/json/");

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(30 * 1000); // 缓存的最长时间
        conn.setDoInput(true);// 允许输入
        conn.setDoOutput(true);// 允许输出
        conn.setUseCaches(false); // 不允许使用缓存
        conn.setRequestMethod("POST");
        conn.setRequestProperty("connection", "keep-alive");
        conn.setRequestProperty("Charsert", "UTF-8");
        conn.setRequestProperty("Content-Type","application/json" ); 
       //必须设置
        DataOutputStream outputStreamWriter = new DataOutputStream(conn.getOutputStream());

        outputStreamWriter.write("{1:1}".getBytes());

        outputStreamWriter.flush();
        outputStreamWriter.close();

        System.out.println("respcode="+conn.getResponseCode());

        conn.disconnect();

   注意这行:conn.setRequestProperty("Content-Type","application/json" );

 

   这里的content-type 必须要设置为 application/json或text/xml 甚至设置为空都可以.

   因为如果不写,默认是application/x-www-form-urlencoded,发送出去的json或xml数据就会变成一个参数名

   接收端用 java request.getInputStream() 取不到内容

 

 

分享到:
评论

相关推荐

    使用Http post的方式调用webservice

    在Java中,可以使用`java.net.URL`、`java.net.HttpURLConnection`或第三方库如Apache HttpClient来构建HTTP POST请求。以下是一个使用HttpURLConnection的基本示例: ```java URL url = new URL(...

    JAVA发送HTTP请求,返回HTTP响应内容

    总结来说,Java发送HTTP请求涉及使用`java.net.HttpURLConnection`类,通过构造URL、设置请求属性、发送请求并解析响应内容来完成。封装这些操作到一个类中可以使代码更易于管理和复用。`HttpResponse`类则用于存储...

    android HTTP通信例子(json数据传递)

    .post(RequestBody.create(MediaType.parse("application/json"), jsonString)) .build(); client.newCall(request).enqueue(callback); ``` 3. **JSON数据处理**: 创建JSON对象和数组,以及解析JSON响应。 ...

    javahttp使用post进行提交数据

    这时,我们需要处理服务器的响应,可能包括解析JSON或XML格式的响应数据,根据返回状态码判断请求是否成功,并根据需要更新UI。 总结来说,使用Java和Android进行HTTP POST提交数据涉及以下步骤: 1. 创建HTTP连接...

    网络获取json解析json以及子线程显示

    import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParserFactory; import okhttp3.Call; import okhttp3.OkHttpClient...

    groovy http请求

    Groovy可以利用Java内置的`java.net.HttpURLConnection`类来发送HTTP请求。以下是一个简单的GET请求示例: ```groovy def url = new URL('http://example.com') HttpURLConnection connection = ...

    Android Studio发起GET网络请求

    在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...

    android-post-json.7z

    "android-post-json.7z" 文件很可能包含了一个示例项目或者代码片段,用于演示如何在Android应用中通过POST方法发送JSON数据。这里我们将深入探讨这个主题。 首先,让我们了解JSON(JavaScript Object Notation)的...

    android发送post请求获取json字符串

    本篇文章将深入探讨如何在Android应用中发送POST请求,并解析返回的JSON字符串。 首先,我们要理解POST请求的基本原理。POST请求是HTTP协议中的一个方法,用于向服务器提交数据,这些数据会附在请求体中。在Android...

    HTTP POST 提交方式

    2. **请求体(Request Body)**:包含了要发送的实际数据,可以是字符串、XML或JSON格式等。 3. **状态码(Status Code)**:服务器返回的状态码,用于指示请求是否成功或者出现了什么问题。 #### 三、实现HTTP POST...

    android get,post获取数据

    对于JSON或XML数据,GET请求通常用于从服务器获取这些数据,数据以字符串形式返回,可以通过解析库如Gson或Jackson处理JSON,或者使用`javax.xml.parsers.DocumentBuilderFactory`处理XML。 ### POST请求 POST请求...

    Android百度地图

    .post(RequestBody.create(MediaType.parse("application/json"), json)) .build(); client.newCall(request).enqueue(callback); ``` 在服务器端,Servlet接收请求,处理数据,再返回响应。这里涉及SQL查询、增删...

    android请求.net webservice

    .NET Web Service通常会返回XML或JSON格式的数据。Android需要解析这些数据,可以使用`org.json`库解析JSON,或者`org.xmlpull.v1.XmlPullParser`解析XML。 5. **处理异步请求** 由于网络请求是异步的,我们需要...

    android开发--访问网络,保存文件,http访问

    RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), "{\"key\":\"value\"}"); Request request = new Request.Builder() .url("http://example.com/api/data") .post(request...

    android基础 - POST GET

    在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。本文将深入探讨这两种方法的工作原理、应用场景以及如何在Android中实现它们。 一、POST与GET方法的区别 1. 工作...

    HttpOperationDemo.zip_android开发_Java_

    在Java中,我们可以使用`java.net.URL`和`java.net.HttpURLConnection`类来实现HTTP请求。然而,Android SDK还提供了`HttpURLConnection`的封装库,如Apache的`HttpClient`,但自API 22之后已被弃用。现在更推荐使用...

    android http 与服务端进行数据交换

    在进行数据交换时,通常需要将Java对象序列化为JSON或XML格式,再由服务器反序列化为服务器端对象。Android中可以使用Gson、Jackson或Fastjson等库进行数据转换。 七、安全性考虑 在进行HTTP通信时,应考虑数据的...

    android 网络接口返回值查看,检查接口

    在Android开发中,网络接口是应用与服务器交互的重要方式,用于获取或发送数据。本教程将详细介绍如何在Android中查看和检查网络接口的返回值,以及如何通过HTTP POST请求发送参数。 首先,我们需要理解Android中的...

    java实现word中文转英文

    在Java编程环境中,实现Word文档中的中文到英文的转换是一项技术挑战,但通过利用特定的库和API,这个任务是可以完成的。以下是一篇详细解释如何实现这一目标的文章。 首先,我们需要选择一个能够处理Microsoft ...

    Android代码-Http简单应用源码.zip

    POST请求通常用于发送数据到服务器,代码如下: ```java URL url = new URL("http://example.com/data"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod...

Global site tag (gtag.js) - Google Analytics