簡體   English   中英

從asp.net core 2.0 HttpClient發布json以卷曲,並附帶其他信息

[英]posting json to curl from asp.net core 2.0 HttpClient with additional information

我正在嘗試使用asp.net Core 2.0 Web API從我的代碼中調用以下URL:

curl -H“內容類型:文本/純文本” --data'{“ key”:“ [此處為您的鍵]”,“ addr”:“ 183qrMGHzMstARRh2rVoRepAd919sGgMHb”,“回調”:“ https:// mystore。 com?invoice_id = 123 “,” onNotification“:” KEEP“,” op“:” RECEIVE“,” confs“:5}' https://api.blockchain.info/v2/receive/balance_update

我創建了一個使用cURL發布的模型,如下所示:

public class ReceiveModel
    {
        public string key { get; set; }
        public int id { get; set; }
        public string addr { get; set; }
        public string op { get; set; }
        public int confs { get; set; }
        public string callback { get; set; }
        public string onNotification { get; set; }
    }

並這樣稱呼它:

public const string baseurl = "https://api.blockchain.info/v2/receive/balance_update";
public async Task<object>ReceiveBitcoins(ReceiveModel recd)
        {
            recd.key = "xxxxxxxx";

            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri(rooturl);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));

            var response = await client.PostAsync(rooturl, recd);
   return response;
        }

請注意,recd是ReceivedModel,其其他字段來自WepApi帖子,並且僅在此處輸入api密鑰。

這是正確的實現嗎? 我是否需要照顧-H和--data,如果可以的話,如何實現?

我從中得到的答復是:

    {"result":{"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Length","value":["109"]},{"key":"Content-Type",
"value":["application/json"]}]},"statusCode":400,"reasonPhrase":"Bad Request","headers":[{"key":"Connection","value":["keep-alive"]},{"key":"Date",
"value":["Fri, 26 Jan 2018 11:31:19 GMT"]},{"key":"Via","value":["1.1 google"]},{"key":"Server","value":["cloudflare"]},{"key":"Set-Cookie","value":["__cfduid=dedf2c6d34e69eeeeeeeeec9b7f1516966278; expires=Sat, 26-Jan-19 11:31:18 GMT; 
path=/; domain=.blockchain.info; HttpOnly"]},{"key":"X-Blockchain-CP-F","value":["2fgz 0.010"]},{"key":"X-Blockchain-Server","value":["BlockchainFE/1.0"]},
{"key":"Strict-Transport-Security","value":["max-age=31536000; includeSubDomains; preload"]},{"key":"X-Content-Type-Options","value":["nosniff"]},{"key":"X-XSS-Protection","value":["1; mode=block"]},{"key":"Alt-Svc","value":["clear"]},
{"key":"Expect-CT","value":["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""]},{"key":"CF-RAY","value":["3e33252b3fdd8a55-BOM"]}],"requestMessage":{"version":{"major":1,"minor":1,"build":-1,
"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["application/json"]},{"key":"Content-Length",
    "value":["222"]}]},"method":{"method":"POST"},"requestUri":
    "https://api.blockchain.info/v2/receive/balance_update","headers":[{"key":"Accept","value":["text/plain"]},
    {"key":"x-ms-request-root-id","value":["1e0xxxxx669-46xxx11d79afac17e"]},{"key":"x-ms-request-id","value":["|1e0xxx69-462511xxxxac17e.1."]},{"key":"Request-Id","value":["|1e0axxx9-462xxxx1xxxxe.1.1."]}],"properties":{}},"isSuccessStatusCode":false},"id":4,"exception":null,"status":5,"isCanceled":false,"isCompleted":true,"isCompletedSuccessfully":true,"creationOptions":0,"asyncState":null,"isFaulted":false}

這是

請幫忙。

當您通過CURL填寫此請求時,它有效嗎? 是否調用了“ ReceiveBitcoins”方法?

curl -H“內容類型:文本/純文本” --data'{“ addr”:“ 183qrMGHzMstARRh2rVoRepAd919sGgMHb”,“回調”:“ https://mystore.com?invoice_id=123 ”,“ onNotification”:“ KEEP” ,“ op”:“ RECEIVE”,“ confs”:5}'

是的,實際上,它將為您輸入的任何回調URL返回結果。...您是否有此終結點的文檔“ https://api.blockchain.info/v2/receive/balance_update ”? 在此API的文檔中,它告訴您如何將數據發送到url回調。

是的,實際上,它將結果返回到您輸入的任何回調URL。

為了使您收到此信息,必須創建一個新方法來接收此響應,例如:

//This method is invoked via the url "https://mystore.com/balance-update".
public async Task<object>BalanceUpdate()
{
     // Perform the data processing here. According to the API documentation.
}

在您的回調中,您可以指定URL來訪問此方法“ https://mystore.com/balance-update ”,這意味着您的回調應類似於“ callback = https://mystore.com/balance-update”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM