Razor、ASP.NET、C#HTTPRequestsが応答の本文を返さないのはなぜですか?

ジョナサンA.レス

私の最終的な目標は、reCaptchaをRazorアプリで動作させることですが、行き詰まっています。応答ヘッダーを取り戻すことができるようになりましたが、実際のJSON応答本文を取り戻す方法がわかりません。さらに情報が必要な場合はお知らせください。

Startup.cs内----------------------------------

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpClient();

モデル> Voter.cs ----------------------------------

using System.ComponentModel.DataAnnotations;

namespace rethianIdeas.Models
{
    public class Voter
    {
        [Required(ErrorMessage = "Data is required.")]
        public string reCaptchaPost { get; set; }

        public string Result { get; set; }
    }
}

投票2.cshtml.csで----------------------------------

using System.Net.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using rethianIdeas.Models;
using System.ComponentModel.DataAnnotations;

namespace rethianIdeas.Pages.Ideas
{
    public class Vote2Model : PageModel
    {

        [BindProperty]
        public Voter reCaptchaTest { get; set; }

        [BindProperty(Name = "g-recaptcha-response")]
        [Required(ErrorMessage = "No One Beats Reacaptcha!")]
        public string reCaptchaG { get; set; }


        public IActionResult OnGet()
        {
            if (reCaptchaTest == null)
            {
                reCaptchaTest = new Voter();
            }

            return Page();
        }

        private readonly IHttpClientFactory _clientFactory;

        public Vote2Model(IHttpClientFactory clientFactory)
        {
            _clientFactory = clientFactory;
        }

        public IActionResult OnPost()
        {

            if (ModelState.IsValid)
            {
                string URL = "https://www.google.com/recaptcha/api/siteverify?secret=6LcUFJUUAAAAADvuNOTGONNAGETITiFgNNG0sxBg&response=";

                string Response_String = reCaptchaG;

                string GetRequest = URL + Response_String;

                var reCaptchaRequest = new HttpRequestMessage(HttpMethod.Get, GetRequest);
               reCaptchaRequest.Headers.Add("Accept", "application/json");


                var Client = _clientFactory.CreateClient().SendAsync(reCaptchaRequest);

                reCaptchaTest.Result = Client.Result.ToString();

            }

            return Page();
        }
    }
}

Vote2.cshtml内----------------------------------

@page
@model rethianIdeas.Pages.Ideas.Vote2Model

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

<form method="post">
    <div asp-validation-summary="All"></div>
    <div>
        <div>
            <label asp-for="@Model.reCaptchaTest.reCaptchaPost"></label>
            <input asp-for="@Model.reCaptchaTest.reCaptchaPost" />
            <span asp-validation-for="@Model.reCaptchaTest.reCaptchaPost"></span>
        </div>
    </div>
    <div class="g-recaptcha" data-sitekey="6LcUFJUUAAAAANOTGETTINGIT0SYj77GZHEhz73p0Q6_m"></div>
    <div>
        <input type="submit" value="Submit">
    </div>
    <div><label>Result: @Model.reCaptchaTest.Result</label></div>
</form>

戻り値 - - - - - - - - - - - - - - - - -

Result: StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent, Headers: { Date: Fri, 08 Mar 2019 06:02:16 GMT Cache-Control: max-age=0, private X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Server: GSE Alt-Svc: quic=":443"; ma=2592000; v="46,44,43,39" Accept-Ranges: none Vary: Accept-Encoding Transfer-Encoding: chunked Content-Type: application/json; charset=utf-8 Expires: Fri, 08 Mar 2019 06:02:16 GMT }

このことからリクエストの本文を取得する方法がわかりません。助けてください。

ドリューネス

非同期メソッドを呼び出していますがawait、それが戻るのを待っていません()。

これにより、正しい道を進むことができます。

public async Task<IActionResult> OnPost()
{
    if (ModelState.IsValid)
    {
        string URL = "https://www.google.com/recaptcha/api/siteverify?secret=***&response=";

        string Response_String = reCaptchaG;

        string GetRequest = URL + Response_String;

        var reCaptchaRequest = new HttpRequestMessage(HttpMethod.Get, GetRequest);
        reCaptchaRequest.Headers.Add("Accept", "application/json");

        var client = _clientFactory.CreateClient();

        var response = await client.SendAsync(reCaptchaRequest);

        if (response.IsSuccessStatusCode)
        {
            reCaptchaTest.Result = await response.Content.ReadAsStringAsync();
        }
        else
        {
            // Errors, do something...
        }
    }

    return Page();
}

詳細については、ASP.NET CoreHttp.Clientのドキュメントを参照してください。また、ここではASP.NETコアとreCAPTCHAのを使用してカバーするブログ記事です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ASP .NET MVC 5 Razor ViewがJavascript機能を認識しないのはなぜですか?

分類Dev

ASP.NET Core2.2で自動400応答でtraceidが送信されるのはなぜですか

分類Dev

RCL(Razor Class Library)でフォームがasp.netコアで機能しないのはなぜですか?

分類Dev

ASP.NET Core 2メソッドがTwiMLを返さないのはなぜですか?

分類Dev

RazorコードがASP.NETCoreのタグヘルパーで機能しないのはなぜですか

分類Dev

Decimalの検証がASP.NETCore 3.1 Razor Pagesで機能しないのはなぜですか?

分類Dev

許可されていないコントローラーが401ASP.Net Coreを返さないのはなぜですか?

分類Dev

Recursion in ASP.NET Core Razor views

分類Dev

ASP.NET Razor Pages - Conditional redirection

分類Dev

JQuery Grid for ASP.NET MVC Razor

分類Dev

Asp.net CoreでWeb UIを作成するためにRazor Pagesが推奨されるのはなぜですか?

分類Dev

この画像がasp.netに表示されないのはなぜですか?

分類Dev

ASP関数がAHref内のリンクを返さないのはなぜですか?

分類Dev

このASP.NETコアPOST要求が「405(メソッドは許可されていません)」を返すのはなぜですか?

分類Dev

ASP.NETを使用してSQLServerでレコードが削除されないのはなぜですか?

分類Dev

ASP Net Core 2.2がメモリを解放しないのはなぜですか?

分類Dev

TextBox ReadOnlyが "True"に設定されている場合、ASP.NET Ajax ColorPickerExtenderコントロールが何も返さないのはなぜですか?

分類Dev

ASP.NET MVC 5RazorのTinyMCE

分類Dev

ASP.NET MVCのHttpPostアクションの後にPartialViewが表示されないのはなぜですか?

分類Dev

ASP.NET Razor C# SQL Database Dropdown List

分類Dev

asp.net Web APIのGETメソッドがIQueryableを返すのはなぜですか?

分類Dev

asp.netコアのcshtmlビューがレンダリングされないのはなぜですか?

分類Dev

nginxのproxy_passがasp.netコアアプリに転送されないのはなぜですか?

分類Dev

ASP.net MVC Razorで@:はどういう意味ですか?

分類Dev

ASP.net MVC Razorで@:はどういう意味ですか?

分類Dev

ASP.net MVC Razorで@:はどういう意味ですか?

分類Dev

ASP.NET vNext'dnubuild 'がOSXで機能しないのはなぜですか

分類Dev

ループがasp.NETで機能しないのはなぜですか?

分類Dev

SwaggerUIがASP.netCoreWebAPIからの適切な応答を表示できない

Related 関連記事

  1. 1

    ASP .NET MVC 5 Razor ViewがJavascript機能を認識しないのはなぜですか?

  2. 2

    ASP.NET Core2.2で自動400応答でtraceidが送信されるのはなぜですか

  3. 3

    RCL(Razor Class Library)でフォームがasp.netコアで機能しないのはなぜですか?

  4. 4

    ASP.NET Core 2メソッドがTwiMLを返さないのはなぜですか?

  5. 5

    RazorコードがASP.NETCoreのタグヘルパーで機能しないのはなぜですか

  6. 6

    Decimalの検証がASP.NETCore 3.1 Razor Pagesで機能しないのはなぜですか?

  7. 7

    許可されていないコントローラーが401ASP.Net Coreを返さないのはなぜですか?

  8. 8

    Recursion in ASP.NET Core Razor views

  9. 9

    ASP.NET Razor Pages - Conditional redirection

  10. 10

    JQuery Grid for ASP.NET MVC Razor

  11. 11

    Asp.net CoreでWeb UIを作成するためにRazor Pagesが推奨されるのはなぜですか?

  12. 12

    この画像がasp.netに表示されないのはなぜですか?

  13. 13

    ASP関数がAHref内のリンクを返さないのはなぜですか?

  14. 14

    このASP.NETコアPOST要求が「405(メソッドは許可されていません)」を返すのはなぜですか?

  15. 15

    ASP.NETを使用してSQLServerでレコードが削除されないのはなぜですか?

  16. 16

    ASP Net Core 2.2がメモリを解放しないのはなぜですか?

  17. 17

    TextBox ReadOnlyが "True"に設定されている場合、ASP.NET Ajax ColorPickerExtenderコントロールが何も返さないのはなぜですか?

  18. 18

    ASP.NET MVC 5RazorのTinyMCE

  19. 19

    ASP.NET MVCのHttpPostアクションの後にPartialViewが表示されないのはなぜですか?

  20. 20

    ASP.NET Razor C# SQL Database Dropdown List

  21. 21

    asp.net Web APIのGETメソッドがIQueryableを返すのはなぜですか?

  22. 22

    asp.netコアのcshtmlビューがレンダリングされないのはなぜですか?

  23. 23

    nginxのproxy_passがasp.netコアアプリに転送されないのはなぜですか?

  24. 24

    ASP.net MVC Razorで@:はどういう意味ですか?

  25. 25

    ASP.net MVC Razorで@:はどういう意味ですか?

  26. 26

    ASP.net MVC Razorで@:はどういう意味ですか?

  27. 27

    ASP.NET vNext'dnubuild 'がOSXで機能しないのはなぜですか

  28. 28

    ループがasp.NETで機能しないのはなぜですか?

  29. 29

    SwaggerUIがASP.netCoreWebAPIからの適切な応答を表示できない

ホットタグ

アーカイブ