标签: restsharp

HttpStatus和DownloadData

我正在尝试使用DownloadData方法使用RestSharp下载文件(图像)

var client = new RestClient(baseUrl);

var request = new RestRequest("GetImage", Method.GET);

var response = client.DownloadData(request);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果请求返回错误,我无法看到HttpStatus代码.

我可以发出请求并检查状态:

var client = new RestClient(baseUrl);

var request = new RestRequest("GetImage", Method.GET);

var response = client.Execute(request);

var status = response.StatusCode;
Run Code Online (Sandbox Code Playgroud)

但后来我无法从Content属性中获取图像.

我错过了一些明显的东西吗?

c# restsharp

12
推荐指数
1
解决办法
5657
查看次数

在反序列化JSON响应时,RestSharp客户端将所有属性返回为null

我正在尝试使用RestSharp的Execute方法查询休息端点并序列化为POCO的一个非常简单的示例.但是,我尝试的所有内容都会产生一个response.Data对象,该对象具有NULL值的所有属性.

这是JSON响应:

{
   "Result":
   {
       "Location":
       {
           "BusinessUnit": "BTA",
           "BusinessUnitName": "CASINO",
           "LocationId": "4070",
           "LocationCode": "ZBTA",
           "LocationName": "Name of Casino"
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试代码

 [TestMethod]
    public void TestLocationsGetById()
    {
        //given
        var request = new RestRequest();
        request.Resource = serviceEndpoint + "/{singleItemTestId}";
        request.Method = Method.GET;
        request.AddHeader("accept", Configuration.JSONContentType);
        request.RootElement = "Location";
        request.AddParameter("singleItemTestId", singleItemTestId, ParameterType.UrlSegment);
        request.RequestFormat = DataFormat.Json;

        //when
        Location location = api.Execute<Location>(request);            

        //then
        Assert.IsNotNull(location.LocationId); //fails - all properties are returned null

    }
Run Code Online (Sandbox Code Playgroud)

这是我的API代码

 public T Execute<T>(RestRequest request) where T : new()
    {
        var client …
Run Code Online (Sandbox Code Playgroud)

c# json restsharp c#-4.0

12
推荐指数
1
解决办法
2万
查看次数

使用RestSharp通过代理进行Web请求

我试图通过Windows手机7上的代理从我可以看到Compact Framework不包括用于HttpWebRequest对象代理的配置做出的WebRequest.我尝试使用RestSharp,但RestClient也不允许这样做.我还尝试在我的本地计算机上配置Internet选项以使用代理,跳转到我的Windows Phone模拟器上将应用相同的选项.那没用.你有什么想法?

windows-phone-7 restsharp

12
推荐指数
3
解决办法
9461
查看次数

使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

我有一个看起来像的视图模型.

public class StoreItemViewModel
{
    public Guid ItemId { get; set; }
    public List<Guid> StoreIds { get; set; }
    [Required]
    public string Description { get; set; }
    //[Required]
    //[DataMember(IsRequired = true)]
    public int ItemTypeId { get; set; }


}
Run Code Online (Sandbox Code Playgroud)

我有一个使用RestSharp的小帮手.

public static IRestResponse Create<T>(object objectToUpdate, string apiEndPoint) where T : new()
    {
        var client = new RestClient(CreateBaseUrl(null))
        {
            Authenticator = new HttpBasicAuthenticator("user", "Password1")
        };

        var request = new RestRequest(apiEndPoint, Method.POST);
        //request.JsonSerializer = new JsonSerializer();
       // {RequestFormat = DataFormat.Json};
        request.AddObject(objectToUpdate);
       // …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json.net restsharp asp.net-web-api

12
推荐指数
3
解决办法
4万
查看次数

RestSharp - 如何获取数字http响应代码?

我正在为C#使用RestSharp HTTP客户端库.

我如何检索实际的数字http响应代码?我不仅没有看到包含数字代码的属性,而且我甚至没有在header集合中看到它.

c# http restsharp

12
推荐指数
1
解决办法
1万
查看次数

是否有适用于可移植类库的RestSharp实现?

当我尝试使用nuget将RestSharp添加到可移植类库项目时,我得到以下内容:

无法安装包'RestSharp 104.1'.您正在尝试将此软件包安装到以".NETPortable,Version = v4.0,Profile = Profile104"为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件.有关更多信息,请与软件包作者联系.

我假设它不受支持?如果是这种情况,任何人都有任何关于如何使其工作的建议?

restsharp portable-class-library

11
推荐指数
2
解决办法
4752
查看次数

使用动态对象反序列化JSON

我有一个JSON对象,附带一长串区号.不幸的是,每个区域代码都是Data对象列表中的对象名称.如何创建一个允许RestSharp反序列化内容的类?

以下是我班级现在的样子:

public class phaxioResponse
{
    public string success { get; set; }
    public string message { get; set; }
    public List<areaCode> data { get; set; }

    public class areaCode
    {
        public string city { get; set; }
        public string state { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是JSON内容:

{
    success: true
    message: "277 area codes available."
    data: {
        201: {
            city: "Bayonne, Jersey City, Union City"
            state: "New Jersey"
        }
        202: {
            city: "Washington"
        state: "District Of Columbia"
        } [...] …
Run Code Online (Sandbox Code Playgroud)

c# json restsharp

11
推荐指数
1
解决办法
3万
查看次数

RestSharp&TLS 1.1

使用RestSharp和TLS 1.1有任何已知问题吗?我们目前使用RestSharp将发布请求发送给供应商.此供应商不再接受TLS 1.0连接并更改为TLS 1.1.

问题是当他们从TLS 1.0切换到TLS 1.1然后我们不再使用RestSharp代码.

我在2008 R2(在启用1.1和1.2的注册表设置之后)以及Windows 8.1上测试了这个.他们切换到TLS 1.1,RestResponse是:

"基础连接已关闭:发送时发生意外错误"

切换回TLS 1.0,没问题.我已经测试过使用谷歌浏览器访问他们的网站,它确实显示了TLS 1.1,因此服务器和客户端工作站能够使用TLS 1.1.它似乎只是RestSharp的问题......

ssl post restsharp

11
推荐指数
1
解决办法
9319
查看次数

RestSharp 超时

我对 RestClient 响应返回有疑问

“StatusCode: 0,Content-Type: , Content-Length: )”,ErrorMessage 为“由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消”。

  • 这是 url 末端的超时还是我的 httpclient 的超时?
  • request.timeout 正确吗?

尽管只有 170KB 的数据,但由于其最终优化不佳,该请求可能需要 5 分钟以上的时间。

var client = new RestClient(url);

RestRequest request = new RestRequest() { Method = Method.Get };

request.Timeout = 300000;

request.AddParameter("access_token", AccessToken);
request.AddParameter("start_date", StartDate.ToString("yyyy-MM-dd"));
request.AddParameter("end_date", EndDate.ToString("yyyy-MM-dd"));
request.AddParameter("offset", offset.ToString());

var response = await client.ExecuteAsync(request);
var responseWorkLoads = JObject.Parse(response.Content).SelectToken("worklogs");
Run Code Online (Sandbox Code Playgroud)

timeout restsharp

11
推荐指数
1
解决办法
2万
查看次数

找不到类型或命名空间名称“IRestResponse”(是否缺少 using 指令或程序集引用?)

IRestResponse我有以下问题:

public async Task<CezanneToken> GetAccessToken()
{
    var client = new RestClient(WebConfigurationManager.AppSettings["TokenUrl"]);
    var request = new RestRequest();
    request.Method = Method.Post;
    request.AddHeader("cache-control", "no-cache");
    request.AddHeader("content-type", "application/x-www-form-urlencoded");
    request.AddParameter("application/x-www-form-urlencoded", "grant_type=client_credentials&client_id=" + WebConfigurationManager.AppSettings["ClientId"] + "&client_secret=" + WebConfigurationManager.AppSettings["ClientSecret"] + "", ParameterType.RequestBody);

    IRestResponse response = await client.ExecuteAsync(request);
    string serStatus = ((RestResponseBase)response).Content;
    CezanneToken details = JsonConvert.DeserializeObject<CezanneToken>(serStatus);
    string Token = details.access_token;
    
    return details;
}
Run Code Online (Sandbox Code Playgroud)

IRestResponse投掷

找不到类型或命名空间名称“IRestResponse”(您是否缺少 using 指令或程序集引用?)我无法使其工作。IntelliSense 建议使用RestResponse> 而不是IRestResponse

但当我去的时候,RestResponse我得到Bad Request了回应。

上面的代码示例是从 Visual Basic“翻译”而来的,但它在 VB 中运行得很好。我不知道问题是否来自Bad Request使用 …

c# restsharp access-token

11
推荐指数
2
解决办法
1万
查看次数