`
zhonglunshun
  • 浏览: 138958 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

How to use OKHTTP to make a post request

阅读更多

 

How to use OKHTTP to make a post request?

 

public JSONObject getJSONFromUrl(String str_url, List<NameValuePair> params) {      
        String reply_str = null;
        BufferedReader reader = null;

        try {
            URL url = new URL(str_url);
            OkHttpClient client = new OkHttpClient();
            HttpURLConnection con = client.open(url);                           
            con.setDoOutput(true);
            OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
            writer.write(getEncodedParams(params));
            writer.flush();     
            StringBuilder sb = new StringBuilder();
            reader = new BufferedReader(new InputStreamReader(con.getInputStream()));           
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }           
            reply_str = sb.toString();              
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                    return null;
                }
            }
        }

        // try parse the string to a JSON object. There are better ways to parse data.
        try {
            jObj = new JSONObject(reply_str);            
        } catch (JSONException e) {   
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }     
      return jObj;
    }

    //in this case it's NameValuePair, but you can use any container
    public String getEncodedParams(List<NameValuePair> params) {
        StringBuilder sb = new StringBuilder();
        for (NameValuePair nvp : params) {
            String key = nvp.getName();
            String param_value = nvp.getValue();
            String value = null;
            try {
                value = URLEncoder.encode(param_value, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            if (sb.length() > 0) {
                sb.append("&");
            }
            sb.append(key + "=" + value);
        }
        return sb.toString();
    }

 

0
0
分享到:
评论

相关推荐

    okhttp3进行https的post调用

    okhttp3进行https的post调用。代码比较详细,也有错误说明。

    okhttp3进行http的post调用

    okhttp3进行http的post调用,代码比较详细。还有错误说明。

    android 的OkHttp3网络的POST和GET请求

    本文将深入探讨如何使用OkHttp3进行GET和POST请求。 首先,我们来了解一下OkHttp3的基本概念。OkHttp是由Square公司开发的一个HTTP客户端库,它通过缓存、连接复用和高效的响应处理提高了网络请求的性能。OkHttp3是...

    Okhttp框架post json封装

    "Okhttp框架post json封装"主要涉及到如何使用OkHttp进行POST请求,并且在请求体中传递JSON格式的数据。 在Android开发中,我们经常需要与服务器进行数据交互,POST请求是一种常见的提交数据的方式,特别是在上传...

    java 调用okHttp3进行代码测试(SpringBoot项目))

    Request postRequest = new Request.Builder() .url("https://api.example.com/upload") .post(requestBody) .build(); ``` 在实际的SpringBoot项目中,这些操作通常会封装在服务层或DAO层的类中,以供业务逻辑...

    08-01 OKHttp3的post和get请求

    OKHttp3不仅支持GET和POST请求,还提供了丰富的API来处理复杂的网络操作。 ### GET请求 GET请求是最常见的HTTP方法,用于从服务器获取资源。在OKHttp3中,发起GET请求非常简单: ```java OkHttpClient client = ...

    OkHttp的jar包和工具类

    public static String sendPostRequest(String url, RequestBody requestBody) throws IOException { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).post...

    okhttp-4.8.1.jar和 okhttp-4.9.1.jar

    这两个 jar 包,okhttp-4.8.1.jar 和 okhttp-4.9.1.jar,代表了 OkHttp 库的不同版本。 OkHttp 4.8.1 版本是 OkHttp 的一个稳定版本,它包含了先前版本的所有功能,并可能对已知问题进行了修复和性能优化。在这一...

    okhttp library

    1.实现get,post请求 2.支持上传,下载功能 3.支持Gson泛型解析json数据 4.使用mvc设计模式 5.支持自定义exception 6.支持自定义controller 7.封装glide图片库使用

    OKHttp3 所有Jarb包

    3. **构建Request对象**:定义请求的URL、方法(GET、POST等)和其他参数。 ```java Request request = new Request.Builder() .url("http://example.com") .build(); ``` 4. **发送请求并处理响应**:使用`...

    android okHttp的简单使用

    本教程将详细介绍如何在Android应用中使用OkHttp进行GET、POST请求,以及如何实现图片下载和文件上传。 首先,我们需要在项目中添加OkHttp的依赖。在`build.gradle`文件中引入库: ```groovy dependencies { ...

    OKHTTP所有依赖jar包

    .post(requestBody) .build(); client.newCall(request).enqueue(callback); ``` 5. **其他相关标签**: - **HTTP**:OKHTTP遵循HTTP/1.1和HTTP/2标准,支持HTTPS和自定义协议。 - **SSL/TLS**:OKHTTP提供了...

    OKHttp的使用Demo

    Timber.tag("OKHttp").d("%s %s", request.method(), request.url()); return chain.proceed(request); }; OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .build()...

    OkHttp的实现

    本篇文章将深入探讨OkHttp如何实现网络请求,包括GET和POST方法的使用,以及如何利用OkHttp进行文件上传和断点续传。 1. OkHttp的Get和Post请求: - GET请求:在OkHttp中,GET请求非常简单,只需要创建一个`...

    Android网络请求OkHttp的使用demo代码

    对于上传,可以通过RequestBody构造文件并设置到POST请求中;对于下载,通常需要自定义ResponseBody来实现流式下载。 **六、缓存机制** OkHttp内置了缓存功能,只需在初始化OkHttpClient时指定缓存目录: ```java ...

    简单封装使用OkHttp3

    `Request.Builder`用于构建请求对象,其中`url()`设置请求的URL,`post(RequestBody)`用于POST请求,`get()`用于GET请求。`enqueue(Callback)`方法用于异步请求,传入一个回调接口,处理请求结果;`execute()`方法...

    Android使用OkHttp发送post请求

    Android 使用 OkHttp 发送 POST 请求 Android 使用 OkHttp 发送 POST 请求是 Android ...使用 OkHttp 发送 POST 请求非常简单,只需要创建一个 OkHttpClient 实例、FormBody 实例和 Request 实例,然后执行网络请求。

    OkHttp封装

    这样的封装使得在其他类中调用网络请求变得非常简单,只需要调用`OkHttpUtil.sendGetRequest(url)`或`OkHttpUtil.sendPostRequest(url, params)`即可。当然,更进一步的封装还可以包括异步请求、回调处理、缓存策略...

    Android-OkHttp的使用以及二次封装

    public static void sendPostRequest(String url, Map, String&gt; params, final Callback callback) { FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry, String&gt; entry : params.entrySet()) ...

    okhttp最新版okhttp-3.9.0.jar下载

    1. **发起请求**:通过`new Request.Builder()`构建请求对象,设置URL、方法(GET、POST等)、头部信息、请求体等。 2. **添加拦截器**:OkHttp支持添加拦截器,可以在请求发送前或响应接收后进行自定义处理,如日志...

Global site tag (gtag.js) - Google Analytics