英文原文:
本文將介紹 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 ...