POST 請求

JumpKick.HttpLib — POST 請求

一、可用請求方法總覽(Http 靜態類)

// 所有方法皆回傳 RequestBuilder 鏈式物件
Http.Get(url);
Http.Post(url);
Http.Put(url);
Http.Delete(url);
Http.Patch(url);
Http.Head(url);Code language: JavaScript (javascript)

統一鏈式寫法:請求方法().參數設定().OnSuccess().OnFail().Go();

二、POST 的兩種傳參模式

  1. .Form():表單提交 Content‑Type: application/x‑www‑form‑urlencoded(網頁表單格式)
  2. .Body():原始內容,適用 JSON / XML / SOAP 自訂訊息

三、範例1:Form 表單提交

using System;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        Http.Post("https://httpbin.org/post")
        .Form(new
        {
            name = "James",
            username = "j6mes"
        })
        .OnSuccess(result =>
        {
            Console.WriteLine("==== POST表單 請求成功 ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== 請求發生異常 ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

四、範例2:使用 Body 傳送 JSON 資料

using System;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        string jsonStr = "{\"account\":\"test\",\"pwd\":\"123456\"}";

        Http.Post("https://httpbin.org/post")
        .Body(jsonStr, "application/json") // 內容本體 + 指定媒體類型
        .OnSuccess(result =>
        {
            Console.WriteLine("==== POST‑JSON 請求成功 ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== 請求發生異常 ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

五、範例3:模擬 POST 失敗場景

刻意呼叫不支援 POST 的位址,捕捉405錯誤,確認 OnFail 可以觸發

using System;
using JumpKick.HttpLib;

class Program
{
    static void Main(string[] args)
    {
        // httpbin.org/get 只接受 GET,送出 POST 會回傳405
        Http.Post("https://httpbin.org/get")
        .Form(new
        {
            test = "demo"
        })
        .OnSuccess(result =>
        {
            Console.WriteLine("==== 請求成功 ====");
            Console.WriteLine(result);
        })
        .OnFail(webexception =>
        {
            Console.WriteLine("==== 請求異常(已攔截405) ====");
            Console.WriteLine(webexception.Message);
        })
        .Go();

        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

六、常見錯誤說明

錯誤訊息:遠端伺服器傳回錯誤:(405) 不允許的方法。

原因:目標介面僅支援 GET,不接受 POST


處理方式:

  1. 改用支援 POST 的測試介面(建議使用 httpbin.org/post)
  2. 確認 API 允許的 HTTP 請求方式

七、GET / POST 重點比較整理

請求方式函式傳參形式適用場景
GETHttp.Get()URL 附加參數讀取查詢資料
POST 表單Http.Post().Form()表單鍵值組網站登入、表單送出
POST JSONHttp.Post().Body()原始字串內容前後端 API 互動

POST 請求

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *