Get value from RestSharp response headers
Solution 1
As I was wondering myself how to do the same, I find out the following solution with the help of this MSDN article about IList<T>
:
string userId = response.Headers.ToList()
.Find(x => x.Name == "userId")
.Value.ToString();
I need to confess I'm fond of playing in Visual Studio with Immediate Window or Quick Watch to dig a bit and know what kind of element Type I'm dealing with:
response.Headers[0]
{userId=1024}
Name: "userId"
Type: HttpHeader
Value: "1024"
Solution 2
Using LINQ:
string userId = response.Headers
.Where(x => x.Name == "userId")
.Select(x => x.Value)
.FirstOrDefault();
This requires no knowledge of the index of the element, and deals with the scenario where the header does not exist.
Solution 3
It's not difficult with Linq:
if( response.Headers.Any(t=>t.Headers == "Location"))
{
string location =
response.Headers.FirstOrDefault(t=>t.Headers == "Location").Value.ToString();
}
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on November 17, 2020Comments
-
Admin over 3 years
I'm hoping someone can help with an issue I'm having with RestSharp. It's all working; I'm getting my reply using the following code:
var client = new RestClient("http://mybaseuri.com"); var request = new RestRequest("service/{id}", Method.GET); request.AddUrlSegment("id", id); // execute the request IRestResponse response = client.Execute(request);
I'd like to get a value from the response headers along the lines of:
string userId = response.Headers["userId"]
I can't find any examples online, can anyone help get a value from the
response.Headers
object which is of typeIList<parameter>
?I'm not looking to iterate the entire collection, just extract a single value by name.
-
user2924019 almost 4 yearsWhat if the header doesn't exist? this causes a null reference exception.