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. 确认接口允许的请求方式

七、GET / POST 关键对比小结

方式函数传参方式适用场景
GETHttp.Get()URL拼接参数查询数据
POST表单Http.Post().Form()表单键值对网页登录、表单提交
POST JSONHttp.Post().Body()原始字符串前后端接口交互

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注