使用RestSharp

时间:2018-10-06 23:41:01

标签: c# image http restsharp

我正在开发一个需要在网站上进行查询以提取某些数据的应用程序,例如用户名,积分/剩余余额等。

我在登录时遇到问题,客户端需要解决验证码SolventMedia才能进入网站,我想提取此验证码的图像并将其显示给客户端,但提取时遇到问题它,我试图通过RestSharp通过http请求来完成,所以我不使用Web浏览器或Selenium这样做的原因是它花费了更多的资源。

我试试这个:

RestClient restClient = new RestClient(@"//api-secure.solvemedia.com/papi/media?c=2@gAB09NHSertXLv3TnpobmKDxvkjsaT4m@X4wLMdkN.u0ENU8bgrS3KH9APTC4lJjokJaIfZePPIgNLL84QkOaQlXcxzHvOVTTU98Of7mo8BoC0QQuiH1RMqMrGof6BbL-tReeY8AHhPA7-nwvQKLqUEXQwTL4HhLXfZVre9jccpqQxFGIRYZH1ZQoAKCV5k1TGCLXXP9vMVsJFntDNz6Ozik02MANT1siBJRYTNIpGcj6p6Gbq5j0HvQChz7jtgdzwlj7nee0BdZphpg27ikQlVB5IUelMvSjzNNvPZawB9YbC9v6zyJngNQaJIJku2SPJkhFXIK0uoA;w=300;h=150;fg=000000;bg=f8f8f8");
var fileBytes = restClient.DownloadData(new RestRequest("#", Method.GET));
File.WriteAllBytes(Path.Combine(directory, "poster-got.jpg"), fileBytes);

问题是我只得到一张显示“ Media Error”的图像,请问有什么方法可以获取当您请求登录页面时发送的图像?可以用restsharp完成吗? ,如果没有,我可以使用哪个库呢?

1 个答案:

答案 0 :(得分:0)

要下载图片,我使用https://github.com/jgiacomini/Tiny.RestClient

但是,当我尝试在浏览器中查看图像时,出现媒体错误。我认为您使用了错误的网址。

在您的情况下     使用Tiny.RestClient;

var client = new TinyRestClient(new HttpClient(), "@"http//api-secure.solvemedia.com");
FileInfo fileInfo = await client.
GetRequest("papi/media").
AddQueryParameter("2@gAB09NHSertXLv3TnpobmKDxvkjsaT4m@X4wLMdkN.u0ENU8bgrS3KH9APTC4lJjokJaIfZePPIgNLL84QkOaQlXcxzHvOVTTU98Of7mo8BoC0QQuiH1RMqMrGof6BbL-tReeY8AHhPA7-nwvQKLqUEXQwTL4HhLXfZVre9jccpqQxFGIRYZH1ZQoAKCV5k1TGCLXXP9vMVsJFntDNz6Ozik02MANT1siBJRYTNIpGcj6p6Gbq5j0HvQChz7jtgdzwlj7nee0BdZphpg27ikQlVB5IUelMvSjzNNvPZawB9YbC9v6zyJngNQaJIJku2SPJkhFXIK0uoA;w=300;h=150;fg=000000;bg=f8f8f8").
DownloadFileAsync("c:\"poster-got.jpg");