亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# CURL POST(內容類型,哈希鍵)

C# CURL POST(內容類型,哈希鍵)

C#
冉冉說 2021-11-28 19:46:12
我目前正在嘗試在 C# (API) 中發送 POST 請求,但是我在內容類型和授權方面遇到了一些麻煩,因為它的格式為 apiHash、apiKey。卷曲示例:curl -i -XPOST https://sandboxapi.g2a.com/v1/order \-H "Authorization: qdaiciDiyMaTjxMt, 74026b3dc2c6db6a30a73e71cdb138b1e1b5eb7a97ced46689e2d28db1050875" \-H 'Content-Type: application/json' \-d '{"product_id": "10000027819004", "max_price": 45.0}'API 文檔:https : //www.g2a.com/integration-api/documentation/#api-Orders-AddOrder這是我到目前為止的代碼:private static readonly HttpClient client = new HttpClient();public async Task < string > makeRequest() {    var values = new Dictionary < string,        string > {            {                "product_id",                "10000027819004"            },            {                "max_price",                "45.0"            }        };    var content = new FormUrlEncodedContent(values);    AuthenticationHeaderValue authHeaders = new AuthenticationHeaderValue("qdaiciDiyMaTjxMt", "74026b3dc2c6db6a30a73e71cdb138b1e1b5eb7a97ced46689e2d28db1050875");    client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8");    client.DefaultRequestHeaders.Authorization = authHeaders;    var response = await client.PostAsync("https://sandboxapi.g2a.com/v1/order", content);    var responseString = await response.Content.ReadAsStringAsync();    return responseString;}我嘗試了多種解決方案,但似乎無法將它們全部正確(內容類型、授權和參數)。
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

您必須像這樣設置內容類型:

client.DefaultRequestHeaders
  .Accept
  .Add(new MediaTypeWithQualityHeaderValue("application/json"));

這將解決問題。


查看完整回答
反對 回復 2021-11-28
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您發送FormUrlEncodedContent的不是 JSON,而 curl 示例正在發送 JSON。


重構您的方法以在StringContent具有正確內容類型集的情況下使用實際序列化的 JSON 字符串。


public async Task<string> makeRequest() {

    var values = new {

        product_id = "10000027819004",

        max_price = 45.0

    };


    //-d '{"product_id": "10000027819004", "max_price": 45.0}'

    var json = JsonConvert.SerializeObject(values); //using Json.Net

    var content = new StringContent(json);


    var auth = "qdaiciDiyMaTjxMt, 74026b3dc2c6db6a30a73e71cdb138b1e1b5eb7a97ced46689e2d28db1050875";

    //-H "Authorization: qdaiciDiyMaTjxMt, 74026b3dc2c6db6a30a73e71cdb138b1e1b5eb7a97ced46689e2d28db1050875" \

    client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", auth);

    //-H 'Content-Type: application/json' \

    client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");


    var response = await client.PostAsync("https://sandboxapi.g2a.com/v1/order", content);


    var responseString = await response.Content.ReadAsStringAsync();

    return responseString;

}


查看完整回答
反對 回復 2021-11-28
  • 2 回答
  • 0 關注
  • 398 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號