Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制器在调用时不返回任何类型的数据,测试字符串除外_C#_Asp.net Core_Asp.net Core Webapi_Asp.net Core 3.1 - Fatal编程技术网

C# 控制器在调用时不返回任何类型的数据,测试字符串除外

C# 控制器在调用时不返回任何类型的数据,测试字符串除外,c#,asp.net-core,asp.net-core-webapi,asp.net-core-3.1,C#,Asp.net Core,Asp.net Core Webapi,Asp.net Core 3.1,我正在连接第三方API,该API需要调用来检索授权代码和令牌 API需要重定向URL,该URL返回时包含附加到查询字符串的授权代码 在我这边,我在下面设置了这个控制器,它将读取查询字符串 然后,我的应用程序需要向API发出POST请求以获取令牌,您将看到我调用包含POST请求的控制器 当我单击我的按钮连接到API时,在我的浏览器窗口中,我确实看到我被重定向到下面的GetGeologicalPeriod()控制器,因为我看到以下消息: 您已到达地质周期终点 我确实在查询字符串中看到了授权代码。 但

我正在连接第三方API,该API需要调用来检索授权代码和令牌

API需要重定向URL,该URL返回时包含附加到查询字符串的授权代码

在我这边,我在下面设置了这个控制器,它将读取查询字符串

然后,我的应用程序需要向API发出POST请求以获取令牌,您将看到我调用包含POST请求的控制器

当我单击我的按钮连接到API时,在我的浏览器窗口中,我确实看到我被重定向到下面的GetGeologicalPeriod()控制器,因为我看到以下消息:

您已到达地质周期终点

我确实在查询字符串中看到了授权代码。 但我看不到其他任何东西,没有错误,什么都没有

我本来希望看到调用GetGeologicalPeriodToken返回的结果,或者至少是一个失败的错误,但我什么也没有得到……甚至在浏览器控制台窗口中也没有

所以我有点不知所措,不知道到底发生了什么

因为这是在一个开发服务器上,所以我无法在VisualStudio中在本地单步执行它

是否有显示消息或写入控制台以便我可以查看发生了什么

谢谢

   [ApiController]
public class GeologicalPeriodController : ControllerBase
{
    [HttpGet]
    public ActionResult<String> GetGeologicalPeriod()
    {
        string getTest = "you have reached the GeologicalPeriod endpoint.";
        var queryString = Request.Query["code"];
        var postResult = GetGeologicalPeriodToken(queryString);
        return postResult;
    }


    [HttpPost("AuthRequest")]
    public ActionResult<String> GetGeologicalPeriodToken(string authCode)
    {
        string authToken = authCode;
        string authString = "admin";

        var queryString = Request.Query["code"];
        var client = new RestClient("https://geologicalPeriod.geo.gov/oauth/token?accessType=professor&code=" + authCode + "&redirect_uri=https://jamaica.round.astro.edu/api/geologicalPeriodauth/geologicalPeriod/AuthRequest");
        var request = new RestRequest(Method.POST);
        request.AddHeader("Authorization", authString);
        IRestResponse response = client.Execute(request);
        var apiResponse = response;
        return apiResponse.Content.ToString();
    }
[ApiController]
公共类地质学周期控制器:ControllerBase
{
[HttpGet]
公共行动结果GetGeologicalPeriod()
{
string getTest=“您已到达地质周期终点。”;
var queryString=Request.Query[“code”];
var postResult=GetGeologicalPeriodToken(查询字符串);
返回结果;
}
[HttpPost(“AuthRequest”)]
公共操作结果GetGeologicalPeriodToken(字符串authCode)
{
字符串authToken=authCode;
字符串authString=“admin”;
var queryString=Request.Query[“code”];
var client=新的RestClient(“https://geologicalPeriod.geo.gov/oauth/token?accessType=professor&code=“+authCode+”&重定向\u uri=https://jamaica.round.astro.edu/api/geologicalPeriodauth/geologicalPeriod/AuthRequest");
var请求=新的重新请求(Method.POST);
AddHeader(“授权”,authString);
IRestResponse response=client.Execute(请求);
var apiResponse=响应;
返回apiResponse.Content.ToString();
}

GetGeologicalPeriod()
完成时,您的浏览器(如果通过浏览器访问)应显示一个字符串,其中包含从服务器检索到的响应内容,假设响应包含内容。您可以做两件事:返回
apiResponse.StatusCode
(或者以何种方式调用属性)以及内容,并检查
GetGeologicalPeriod()的HTTP响应
-如果一切正常,完成后您应该获得HTTP200@CamiloTerevinto这似乎很奇怪,因为我确实看到我的测试字符串
您已到达GeologicalPeriod端点。
在浏览器窗口中,但没有其他内容。没有错误,控制台中也没有任何内容。那么,您发布的代码不是正确的,因为
get测试
在当前文件中的任何位置都不会打印code@CamiloTerevinto很抱歉,我本应该在测试实际进程时将其取出,但返回了
getTest
,以确保浏览器被重定向到正确的URL路径。抱歉:)好的,因此我的第一条评论仍然有效:您可以做两件事:re打开apiResponse.StatusCode(或以任何方式调用属性)以及内容,并检查GetGeologicalPeriod()的HTTP响应-如果一切正常,完成后您应该会得到HTTP 200(查看网络选项卡)