当前位置: 首页 > 知识库问答 >
问题:

RestClient-请求返回500个内部服务器错误(内容为html)和无错误消息

屠钊
2023-03-14

我使用REST客户端的PUT请求有问题。我在邮递员中尝试了同样的方法,我得到了一个带有适当错误消息的错误响应。所以我期望在C#-RestSharp请求调用中也是如此。相反,我得到一个500内部服务器错误,与请求。错误异常=null和请求。错误消息=null以及。在有人指责我请求头之前,我确实设置了请求。addHeader(接受,应用/json);

我的代码是这样的

var client = new RestClient(uri);
var request = new RestRequest(Method.PUT);
request.AddHeader("Accept", "application/json");`
request.AddParameter("xx...", value); 
var response = client.Execute(request);
var content = response.Content;   

所以现在的反应。我看到的内容是下面的html(我只是发布部分内容以供参考)

<html>
    <head>
        <title>Runtime Error</title>
        <meta name="viewport" content="width=device-width" />
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
         @media screen and (max-width: 639px) {
          pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
         }
         @media screen and (max-width: 479px) {
          pre { width: 280px; }
         }
        </style>
    </head>

    <body bgcolor="white">
.....

....
</html>

现在,在我的包装方法中,我正在检查StatusCode是否不是200,然后如果请求。错误异常为空,在这种情况下,只显示一个通用消息“出了问题......”类型的事情。这只是目前的创可贴解决方案。我想知道如何获得准确的错误响应或如何处理这种情况。

任何帮助都非常感谢。

共有1个答案

朱鹤轩
2023-03-14

在Web服务中,除非您显式地将错误消息设置为其属性之一,否则永远不会返回实际错误。例如,在WebAPI中,您可以使用请求返回错误消息。创建响应()方法。该方法需要返回Http响应消息类型。下面是代码

[HttpPut]
public HttpResponseMessage MyPutMethod()
{
try
{
...process
return Request.CreateResponse(HttpStatusCode.OK, "Success");
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
}
}

注意:出于安全原因,发送异常详细信息不是一个好主意。

 类似资料:
  • 我的浏览器控制台上有一个错误:“放置http://localhost:8000/post/2 500(内部服务器错误)” 我使用资源控制器和我的路由-路由e::资源('post','PostController'); 此处为更新帖子的资源控制器代码: 这里我的视图代码: Ajax代码: 顺便说一下,我在文件头上使用了元令牌{{csrf_token()}}。但是我在本地主机上发现了500个内部服务器

  • 这是我在laravel 5中的测试ajax(参考下面) 以及触发链接 我的路线呢 但它给我一个错误,当我在谷歌chrome运行控制台,它不返回预期的响应返回成功!Ajax在laravel 5';" 邮递http://juliver.laravel.com/test500(内部服务器错误) 我的代码有什么问题?我遗漏了什么?

  • 我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:

  • 在尝试使用Twython进行简单的推特搜索时 我得到了这个错误: 这里可能有什么问题?

  • 问题内容: 大家好,我在laravel和ajax中使用我的评论系统时遇到问题。实际上,它仅适用于php,但我遇到了ajax问题。 这是错误消息: 状态码:500内部服务器错误。并且错误显示:1/3 SQLSTATE [23000]:违反完整性约束:1048列’post_id’不能为null。 我正在编辑模态中的注释,我可以创建一个新注释,但是问题是使用ajax编辑它。 JS代码: 这是HTML:

  • 我在做一个春靴项目, 我正试图从邮递员发送get请求,但我得到500个内部服务器错误。 控制器: } 型号: