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(); }
相关推荐
okhttp3进行https的post调用。代码比较详细,也有错误说明。
okhttp3进行http的post调用,代码比较详细。还有错误说明。
本文将深入探讨如何使用OkHttp3进行GET和POST请求。 首先,我们来了解一下OkHttp3的基本概念。OkHttp是由Square公司开发的一个HTTP客户端库,它通过缓存、连接复用和高效的响应处理提高了网络请求的性能。OkHttp3是...
"Okhttp框架post json封装"主要涉及到如何使用OkHttp进行POST请求,并且在请求体中传递JSON格式的数据。 在Android开发中,我们经常需要与服务器进行数据交互,POST请求是一种常见的提交数据的方式,特别是在上传...
Request postRequest = new Request.Builder() .url("https://api.example.com/upload") .post(requestBody) .build(); ``` 在实际的SpringBoot项目中,这些操作通常会封装在服务层或DAO层的类中,以供业务逻辑...
OKHttp3不仅支持GET和POST请求,还提供了丰富的API来处理复杂的网络操作。 ### GET请求 GET请求是最常见的HTTP方法,用于从服务器获取资源。在OKHttp3中,发起GET请求非常简单: ```java OkHttpClient client = ...
这两个 jar 包,okhttp-4.8.1.jar 和 okhttp-4.9.1.jar,代表了 OkHttp 库的不同版本。 OkHttp 4.8.1 版本是 OkHttp 的一个稳定版本,它包含了先前版本的所有功能,并可能对已知问题进行了修复和性能优化。在这一...
1.实现get,post请求 2.支持上传,下载功能 3.支持Gson泛型解析json数据 4.使用mvc设计模式 5.支持自定义exception 6.支持自定义controller 7.封装glide图片库使用
public static String sendPostRequest(String url, RequestBody requestBody) throws IOException { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).post...
3. **构建Request对象**:定义请求的URL、方法(GET、POST等)和其他参数。 ```java Request request = new Request.Builder() .url("http://example.com") .build(); ``` 4. **发送请求并处理响应**:使用`...
本教程将详细介绍如何在Android应用中使用OkHttp进行GET、POST请求,以及如何实现图片下载和文件上传。 首先,我们需要在项目中添加OkHttp的依赖。在`build.gradle`文件中引入库: ```groovy dependencies { ...
.post(requestBody) .build(); client.newCall(request).enqueue(callback); ``` 5. **其他相关标签**: - **HTTP**:OKHTTP遵循HTTP/1.1和HTTP/2标准,支持HTTPS和自定义协议。 - **SSL/TLS**:OKHTTP提供了...
Timber.tag("OKHttp").d("%s %s", request.method(), request.url()); return chain.proceed(request); }; OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .build()...
本篇文章将深入探讨OkHttp如何实现网络请求,包括GET和POST方法的使用,以及如何利用OkHttp进行文件上传和断点续传。 1. OkHttp的Get和Post请求: - GET请求:在OkHttp中,GET请求非常简单,只需要创建一个`...
对于上传,可以通过RequestBody构造文件并设置到POST请求中;对于下载,通常需要自定义ResponseBody来实现流式下载。 **六、缓存机制** OkHttp内置了缓存功能,只需在初始化OkHttpClient时指定缓存目录: ```java ...
`Request.Builder`用于构建请求对象,其中`url()`设置请求的URL,`post(RequestBody)`用于POST请求,`get()`用于GET请求。`enqueue(Callback)`方法用于异步请求,传入一个回调接口,处理请求结果;`execute()`方法...
Android 使用 OkHttp 发送 POST 请求 Android 使用 OkHttp 发送 POST 请求是 Android ...使用 OkHttp 发送 POST 请求非常简单,只需要创建一个 OkHttpClient 实例、FormBody 实例和 Request 实例,然后执行网络请求。
这样的封装使得在其他类中调用网络请求变得非常简单,只需要调用`OkHttpUtil.sendGetRequest(url)`或`OkHttpUtil.sendPostRequest(url, params)`即可。当然,更进一步的封装还可以包括异步请求、回调处理、缓存策略...
public static void sendPostRequest(String url, Map, String> params, final Callback callback) { FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry, String> entry : params.entrySet()) ...
1. **发起请求**:通过`new Request.Builder()`构建请求对象,设置URL、方法(GET、POST等)、头部信息、请求体等。 2. **添加拦截器**:OkHttp支持添加拦截器,可以在请求发送前或响应接收后进行自定义处理,如日志...