Github地址
github.com/mikemintang…
安裝
go get github.com/mikemintang/go-curl複製程式碼
使用
package main
import (
"fmt"
"github.com/mikemintang/go-curl"
)
func main() {
url := "http://php.dev/api.php"
headers := map[string]string{
"User-Agent": "Sublime",
"Authorization": "Bearer access_token",
"Content-Type": "application/json",
}
cookies := map[string]string{
"userId": "12",
"loginTime": "15045682199",
}
queries := map[string]string{
"page": "2",
"act": "update",
}
postData := map[string]interface{}{
"name": "mike",
"age": 24,
"interests": []string{"basketball", "reading", "coding"},
"isAdmin": true,
}
// 鏈式操作
req := curl.NewRequest()
resp, err := req.
SetUrl(url).
SetHeaders(headers).
SetCookies(cookies).
SetQueries(queries).
SetPostData(postData).
Post()
if err != nil {
fmt.Println(err)
} else {
if resp.IsOk() {
fmt.Println(resp.Body)
} else {
fmt.Println(resp.Raw)
}
}
}複製程式碼
接收請求的api.php
<?php
//echo json_encode($_GET); // 獲取url地址中的查詢引數
//echo json_encode(getallheaders()); // 獲取請求頭
//echo json_encode($_COOKIE); // 獲取cookies
echo file_get_contents("php://input"); // 獲取post提交的資料
function getallheaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}複製程式碼
可匯出的成員變數和方法
TodoList
- [x] 以鏈式操作的方式發起請求
- [ ] 以函式回撥的方式發起請求
- [ ] 以類Jquery Ajax的方式發起請求
- [x] 發起GET/POST請求
- [ ] 發起PUT/PATCH/DELETE/OPTIONS操作
- [x] 以application/x-www-form-urlencoded形式提交post資料
- [x] 以application/json形式提交post資料
- [ ] 以multipart/form-data形式提交post資料
- [ ] proxy代理設定