Rest API 在 C# 中不起作用,但在 Postman 中成功

问题描述 投票:0回答:1

目前,我正在使用邮递员中的服务来咨询特定端点,在邮递员中我唯一要做的就是将包含参数的 URL 粘贴到请求中,并且它会正确返回内容,但是当我从 C# 执行相同的过程时,它响应(OK200),但在数据中我什么也没得到。

这是URL端点:https://citaconsular.es/onlinebookings/getwidgetconfigurations/?callback=jQuery21106986789352158271_1707334634680&type=default&publickey=2535680773512eb064e273253a3ba5037&lang=es&version=12 46&src=https%3A%2F%2Fwww.citaconsular.es%2Fes%2Fhosteds%2Fwidgetdefault %2F2535680773512eb064e273253a3ba5037%23services&srvsrc=https%3A%2F%2Fcitaconsular.es&_=1707334634682

这是我的邮差包

这是我的 c# 请愿书,我在这个请愿书中使用restSharp,我也在尝试使用

httpClient

private static void FindAppointmentss()
{
    try
    {
        var client = new RestClient("https://citaconsular.es");
        var request = new RestRequest("/onlinebookings/getservices/", Method.Get);
        request.AddQueryParameter("callback", "jQuery2110803503481037606_1707334189954");
        request.AddQueryParameter("type", "default");
        request.AddQueryParameter("publickey", "2535680773512eb064e273253a3ba5037");
        request.AddQueryParameter("lang", "es");
        request.AddQueryParameter("version", "1246");
        request.AddQueryParameter("src", "https%3A%2F%2Fwww.citaconsular.es%2Fes%2Fhosteds%2Fwidgetdefault%2F2535680773512eb064e273253a3ba5037%23services");
        request.AddQueryParameter("srvsrc", "https%3A%2F%2Fcitaconsular.es");
        request.AddQueryParameter("_", "1707334189957");
        request.AddHeader("Accept", "application/javascript");

        var response = client.Execute(request);

        if (response.IsSuccessful)
        {
            string content = response.Content;
        }
        else
        {
            Console.WriteLine("No data content: " + response.StatusCode);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: " + ex.Message);
    }
}

我总是得到无数据内容

我尝试从邮递员创建一个请求,该请求成功了,如案例描述中所示,我还尝试从 c#、Nodejs 和 ReactJS 中执行此操作。 从 c# 和 Nodejs 来看,响应成功,但没有返回数据,例如 Postman 的情况。

预期的答案是下一个文本回调,其内容是application/javascript

callback=jQuery21106986789352158271_1707334634680({
    "WidgetConfiguration": {
        "any_agenda": "2",
        "registration_type": "2",
        "waiting_list": "0",
        "show_comments": "0",
        "mandatory_comments": "0",
        "min_service_to_enable_dropdown": "0",
        "template": "1",
        "captcha": "0",
        "payment_enable": false,
        "payments_gateways": {
            "stripe": false,
            "paypal": false,
            "redsys": false,
            "niubiz": false
        }
    },
    "WidgetLabel": []
});
c# rest postman
1个回答
0
投票

当我使用 postman 控制台在 Postman 中调查您的 API 请求时,我发现该请求使用名为 Referer 的标头。

    Referer: https://citaconsular.es/onlinebookings/getwidgetconfigurations/?callback=jQuery21106986789352158271_1707334634680&type=default&publickey=2535680773512eb064e273253a3ba5037&lang=es&version=1246&src=https%3A%2F%2Fwww.citaconsular.es%2Fes%2Fhosteds%2Fwidgetdefault%2F2535680773512eb064e273253a3ba5037%23services&srvsrc=https%3A%2F%2Fcitaconsular.es&_=1707334634682
Host: www.citaconsular.es

我尝试在 Restsharp 中使用它,并且在响应中收到内容。 请使用名为Refer的addheader。以下是我的代码:

public void TestBooking()
{
 
     var restClient = new RestClient("https://citaconsular.es");
     var request = new RestRequest("/onlinebookings/getservices/");
     request.AddParameter("callback", "jQuery2110803503481037606_1707334189954");
     request.AddParameter("type", "default");
     request.AddParameter("publickey", "2535680773512eb064e273253a3ba5037");
     request.AddParameter("lang", "es");
     request.AddParameter("version", "1246");
     request.AddParameter("src", "https%3A%2F%2Fwww.citaconsular.es%2Fes%2Fhosteds%2Fwidgetdefault%2F2535680773512eb064e273253a3ba5037%23services");
     request.AddParameter("srvsrc", "https%3A%2F%2Fcitaconsular.es");
     request.AddParameter("_", "1707334189957");
     request.AddHeader("Referer", "https://citaconsular.es/onlinebookings/getwidgetconfigurations/?" +
         "callback=jQuery21106986789352158271_1707334634680&type=default&publickey=2535680773512eb064e273253a3ba5037&" +
         "lang=es&version=1246&src=https%3A%2F%2Fwww.citaconsular.es%2Fes%2Fhosteds%2Fwidgetdefault%2F2535680773512eb064e273253a3ba5037%23" +
         "services&srvsrc=https%3A%2F%2Fcitaconsular.es&_=1707334634682");
 
     var response = restClient.Execute(request);
}

我已附上屏幕截图。

希望这能解决您的疑问。

© www.soinside.com 2019 - 2024. All rights reserved.