`

HttpURLConnection+post+json案例

    博客分类:
  • java
 
阅读更多
public class HttpUtil {
	private static Logger logger = Logger.getLogger(HttpUtil.class);
	final static String url = HttpURLUtil.SENDGIFTURL;  
    final static String params = "{\"prodId\":\"0\"}";  
  
    /** 
     * 发送HttpPost请求 
     *  
     * @param strURL 
     *            服务地址 
     * @param params 
     *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/> 
     * @return 成功:返回json字符串<br/> 
     */  
    public static String post(String strURL, String params) {  
        System.out.println(strURL);  
        System.out.println(params);  
        try {  
            URL url = new URL(strURL);// 创建连接  
            HttpURLConnection connection = (HttpURLConnection) url  
                    .openConnection();  
            connection.setDoOutput(true);  
            connection.setDoInput(true);  
            connection.setUseCaches(false);  
            connection.setInstanceFollowRedirects(true);  
            connection.setRequestMethod("POST"); // 设置请求方式  
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式  
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式  
            connection.connect();  
            OutputStreamWriter out = new OutputStreamWriter(  
                    connection.getOutputStream(), "UTF-8"); // utf-8编码  
            out.append(params);  
            out.flush();  
            out.close();  
            // 读取响应  
            int length = (int) connection.getContentLength();// 获取长度  
            InputStream is = connection.getInputStream();  
            if (length != -1) {  
                byte[] data = new byte[length];  
                byte[] temp = new byte[512];  
                int readLen = 0;  
                int destPos = 0;  
                while ((readLen = is.read(temp)) > 0) {  
                    System.arraycopy(temp, 0, data, destPos, readLen);  
                    destPos += readLen;  
                }  
                String result = new String(data, "UTF-8"); // utf-8编码  
                System.out.println(result);  
                return result;  
            }  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return "error"; // 自定义错误信息  
    }  
  
    public static void main(String[] args) {  
        post(url, params);  
    }  
}

 

分享到:
评论

相关推荐

    HttpUrlConnection实例

    以上步骤提供了一个基本的框架,但实际应用中可能需要处理更多细节,如添加请求头(如`Content-Type: application/json`)、处理POST请求(包括设置输出流和写入请求体)、错误处理等。 在进行网络请求时,为了遵守...

    使用Http post的方式调用webservice

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

    Android开发HTTP传输数据到Struts2生成Json数据案例

    以`HttpURLConnection`为例,我们需要设置HTTP请求方法(通常是POST或GET),添加请求头(如Content-Type: application/json),并编写请求体,以JSON格式发送数据。例如,我们可以创建一个JSONObject,然后将其转换...

    Android使用XML和JSON两种数据格式通过网络通信实现资讯客户端案例

    例如,通过POST或GET方法向服务器发送请求,获取XML或JSON响应。使用OkHttp能更好地处理异步请求,避免阻塞UI线程。为了实现异步通信,我们可以使用Android的AsyncTask类,或者更现代的Retrofit库,它集成了OkHttp并...

    android 服务器+客户端的简单案例

    1. JSON或XML数据格式:服务器通常会以JSON或XML格式返回数据,Android客户端需要解析这些数据。 2. 请求参数:在POST请求中,需要将数据封装到请求体中。 3. 异步处理:Android客户端应使用异步方式发送请求,避免...

    get 和post 实例

    在Android中,实现GET和POST请求,我们可以使用`HttpURLConnection`、`HttpClient`(已废弃但仍然可用)或者第三方库如Retrofit、Volley等。以下是一个基于HttpClient的简单示例: ```java // 创建HttpClient实例 ...

    HttpURLConnection 的使用二

    在提供的博客链接中,作者可能会分享关于如何有效使用`HttpURLConnection`进行HTTP请求的实践案例,包括错误处理、性能优化以及与其他库(如Apache HttpClient)的对比分析。通过阅读和学习这样的内容,开发者可以更...

    安卓POST实现意见反馈+PHP端

    1. 使用HttpURLConnection或OkHttp库:在Android应用中,我们可以使用HttpURLConnection或者第三方库如OkHttp来发起POST请求。OkHttp以其高性能和易用性而被广泛采用。通过创建OkHttpClient实例,构建RequestBody...

    http请求测试实例(采用json-lib解析)

    标题中的“http请求测试实例(采用json-lib解析)”指的是一个使用HTTP协议进行网络通信的实践案例,其中涉及了对JSON数据的处理,利用了json-lib这个Java库。JSON(JavaScript Object Notation)是一种轻量级的数据...

    Android应用源码之android使用JSON进行网络数据交换(服务端、客户端)的实现-IT计算机-毕业设计.zip

    在Android客户端,主要使用HttpURLConnection或OkHttp库进行网络请求,发送GET或POST请求到服务端获取JSON数据。此外,Android也提供了Gson库和org.json库来解析JSON字符串成Java对象,便于处理数据。例如,可以使用...

    安卓案例开发大全09

    通过案例,你可以学习如何进行GET和POST请求,处理JSON或XML数据,以及如何使用异步任务或者协程避免阻塞主线程。 数据存储也是关键。SQLite数据库用于本地持久化数据,而SharedPreferences则适用于轻量级的键值对...

    Android高级应用源码-android使用JSON进行网络数据交换(服务端、客户端)的实现.zip

    JSON数据通常通过POST或GET方法发送到服务器,然后由服务器返回。Android SDK提供了org.json库,可以用来解析和构建JSON对象。例如,你可以创建一个JSONObject或JSONArray,添加键值对,然后将它们转换为字符串,...

    InternetDemo.7z

    "InternetDemo.7z"这个压缩包文件包含了一个示例,展示了如何使用HttpURLConnection进行GET和POST网络请求,以及如何使用JSONObject和Gson库来解析JSON字符串。以下是这些知识点的详细解释: 1. **...

    Android网络登录的案例

    .post(RequestBody.create(MediaType.parse("application/json"), "{\"username\":\"user\",\"password\":\"pass\"}")) .build(); Response response = client.newCall(request).execute(); ``` 3. **JSON序列化...

    安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar

    在这个例子中,可能使用了HttpURLConnection或HttpClient来向.NET Web服务发送GET或POST请求,获取JSON格式的响应数据。 3. **JSON解析**:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    android 案例全集

    案例可能包括如何发送GET和POST请求,处理JSON或XML数据,实现WebSocket实时通信等。 4. **多媒体处理**:Android支持音频、视频的播放与录制,图像处理等。案例可能涉及到Camera API的使用,MediaRecorder和...

    Android高级应用源码-利用JSON,通过Android客户端访问web服务器,实现一个登录功能.zip

    在这个特定的案例中,我们有一个源码示例,展示了如何利用JSON(JavaScript Object Notation)这一轻量级的数据交换格式,通过Android客户端来访问Web服务器,实现一个登录功能。这涉及到网络编程、JSON解析以及用户...

    Android经典项目案例开发实战宝典实例源文件(上)

    开发者会学习如何发送GET和POST请求,解析JSON或XML数据,并在UI上展示。 5. **异步处理**:Android应用的响应性至关重要,因此需要避免在主线程中执行耗时操作。AsyncTask、IntentService和现代的协程(Coroutines)...

    Android高级应用源码-单排显示gridview并从解析JSON读取数据加载项目.zip

    在这个案例中,我们将会探讨以下几个关键知识点: 1. **GridView的使用**: GridView是Android中的一个视图容器,它可以将数据集以网格的形式展示。在XML布局文件中,我们需要添加GridView标签,并设置相应的属性...

    安卓十个案例.rar

    案例中可能会展示如何发送GET和POST请求,以及如何解析返回的数据。 4. **异步处理**:Android应用的网络操作、大数据处理等耗时任务应放在主线程之外执行,以防阻塞用户界面。可以使用AsyncTask、IntentService或...

Global site tag (gtag.js) - Google Analytics