在VS2017 Community ASP.Net MVC Web API中使用RestSharp发Get请求遇报错
解决RestSharp在ASP.NET MVC Web API中发送GET请求的问题
看起来你在使用RestSharp发送GET请求时遇到了代码编写的问题,我来帮你梳理并修正这段代码。首先你的代码里有个明显的小问题:RestClient已经指定了完整的请求URL,RestRequest就不需要再重复传入相同的URL了,这会导致请求路径错误。
第一步:确保安装了RestSharp包
首先你需要通过NuGet安装RestSharp,在Visual Studio里右键项目 -> 管理NuGet程序包,搜索RestSharp并安装适合.NET Framework的版本(因为你用的是ASP.NET MVC而非Core)。
修正后的完整代码
下面是可以正常运行的代码,我帮你补全了逻辑,并添加了注释说明:
using RestSharp; using System; public class YourApiController : System.Web.Mvc.Controller // 如果是Web API控制器,改成System.Web.Http.ApiController { public string Get() { try { // 初始化RestClient,传入完整的请求地址 var client = new RestClient("http://www.dictionary.com/browse/computer"); // 创建GET请求,因为RestClient已经指定了完整URL,这里只需指定请求方法 var request = new RestRequest(Method.GET); // 执行请求并获取响应 IRestResponse response = client.Execute(request); // 检查响应是否成功 if (response.IsSuccessful) { // 返回网页的文本内容 return response.Content; } else { // 请求失败时返回错误信息 return $"请求失败:{response.StatusCode} - {response.ErrorMessage}"; } } catch (Exception ex) { // 捕获异常,返回异常信息方便调试 return $"发生异常:{ex.Message}"; } } }
关键说明
- URL重复问题:原代码里同时给RestClient和RestRequest传入完整URL,会让RestSharp拼接出错误的请求地址(比如
http://www.dictionary.com/browse/computer/http://www.dictionary.com/browse/computer),所以只需要在RestClient里指定完整URL即可。 - 响应校验:一定要通过
response.IsSuccessful判断请求是否成功,避免直接使用response.Content导致空引用或错误内容。 - 异常处理:添加try-catch块可以捕获网络超时、连接失败等异常,方便你排查问题。
如果你的Web API控制器是继承自ApiController(ASP.NET Web API专属控制器),只需把控制器基类改成System.Web.Http.ApiController,核心逻辑完全一致。
内容的提问来源于stack exchange,提问作者Karamjot Kaur
相关产品推荐
相关产品推荐

