使用OkHttp傳送POST請求的快速入門指南

2021-10-12 06:49:35 字數 1663 閱讀 7795

英文原文:

本文將介紹 okhttp 客戶端的基本用法。

在本篇簡短的技術文章中,我們將特別介紹 okhttp 3.x 版本中傳送post請求的不同方式。

我們可以使用 formbody.builder 構造基本的 requestbody , 包含兩個引數:使用者名稱、密碼,傳送 post請求。

@test

public void whensendpostrequest_thencorrect()

throws ioexception

@test

public void whenpostjson_thencorrect() throws ioexception ";

requestbody body = requestbody.create(

request request = new request.builder()

.url(base_url + "/users/detail")

.post(body)

.build();

call call = client.newcall(request);

response response = call.execute();

assertthat(response.code(), equalto(200));

}

為了傳送乙個 multipart post 請求, 我們需要將 requestbody 構建為乙個 multipartbody 來發布檔案、使用者名稱和密碼的 post 請求:

@test

public void whensendmultipartrequest_thencorrect()

throws ioexception

okhttp 的預設字元編碼是 utf-8:

@test

public void whenpostjsonwithoutcharset_thencharsetisutf8() throws ioexception ";

final requestbody body = requestbody.create(

string charset = body.contenttype().charset().displayname();

assertthat(charset, equalto("utf-8"));

}

如果我們想使用其他字元編碼,我們可以將其作為 mediatype.parse () 的第二個引數傳入:

@test

public void whenpostjsonwithutf16charset_thencharsetisutf16() throws ioexception ";

final requestbody body = requestbody.create(

string charset = body.contenttype().charset().displayname();

assertthat(charset, equalto("utf-16"));

}

在這篇短文中,我們給出了幾個使用 okhttp 客戶端傳送 post 請求的示例。

和往常一樣,本文的示例**已發布在 github上。

使用okhttp傳送http post方法

注意點一 有關網路的操作都需要宣告一下許可權,因此我們需要在androidmanifest.xml檔案裡加入許可權宣告,如下所示 下面我們來看一下okhttp的具體用法 1 建立乙個okhttpclient的實列,如下所示 2 建立乙個requestbody物件 存放待提交的引數 如下所示 requ...

使用RestTemplate傳送post請求

最近使用resttemplate傳送post請求,遇到了很多問題,如轉換httpmessage失敗 中文亂碼等,調了好久才找到下面較為簡便的方法 如果直接使用在postforobject中把物件傳入很容易出現no suitable httpmessageconverter found for req...

使用requests傳送get post請求

首先是安裝requests庫 pip install requests 匯入requests庫 import requests 定義乙個url 入參直接寫在url內,使用問號隔開 url test 返回的資料定義為r url賦值為之前定義的值 r requests.get url url test ...