我正在尝试使用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属性中获取图像.
我错过了一些明显的东西吗?
我正在尝试使用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) 我试图通过Windows手机7上的代理从我可以看到Compact Framework不包括用于HttpWebRequest对象代理的配置做出的WebRequest.我尝试使用RestSharp,但RestClient也不允许这样做.我还尝试在我的本地计算机上配置Internet选项以使用代理,跳转到我的Windows Phone模拟器上将应用相同的选项.那没用.你有什么想法?
我有一个看起来像的视图模型.
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#使用RestSharp HTTP客户端库.
我如何检索实际的数字http响应代码?我不仅没有看到包含数字代码的属性,而且我甚至没有在header集合中看到它.
当我尝试使用nuget将RestSharp添加到可移植类库项目时,我得到以下内容:
无法安装包'RestSharp 104.1'.您正在尝试将此软件包安装到以".NETPortable,Version = v4.0,Profile = Profile104"为目标的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件.有关更多信息,请与软件包作者联系.
我假设它不受支持?如果是这种情况,任何人都有任何关于如何使其工作的建议?
我有一个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) 使用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的问题......
我对 RestClient 响应返回有疑问
“StatusCode: 0,Content-Type: , Content-Length: )”,ErrorMessage 为“由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消”。
尽管只有 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) 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使用 …