最近在使用 smms 图床上传发现需要使用 UserAgent ,不然不会返回值。 所以我就询问了群里大神,他们告诉我需要设置 UserAgent ,本文就是告诉大家如何设置 HttpClient 的浏览器标识
如果使用 HttpClient 上传图片很简单,只需要创建 HttpMultipartFormDataContent ,里面写图片就可以上传。
设置的方法是HttpClient.DefaultRequestHeaders.UserAgent.ParseAdd
,请看下面
HttpClient webHttpClient =
new HttpClient();
var userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";
webHttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
这里 userAgent 是从Chrome User Agents拿到,这样就可以了。
如果大家希望知道如何上传图片到 smms ,那么请使用下面代码
string url = "https://sm.ms/api/upload";
HttpClient webHttpClient =
new HttpClient();
HttpMultipartFormDataContent httpMultipartFormDataContent =
new HttpMultipartFormDataContent();
var fileContent = new HttpStreamContent(await File.OpenAsync(FileAccessMode.Read));
fileContent.Headers.Add("Content-Type", "application/octet-stream");
var userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";
webHttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
httpMultipartFormDataContent.Add(fileContent, "smfile", File.Name);
var str = await webHttpClient.PostAsync(new Uri(url), httpMultipartFormDataContent);
//这里可以拿到返回的值 str.Content.ToString();
拿到的返回的值就可以转换拿到上传的图片,现在我做了图床,欢迎大家使用
如果需要设置 WebView 的标识,请看win10 uwp 如何让WebView标识win10手机
本文会经常更新,请阅读原文: https://blog.lindexi.com/post/win10-uwp-%E8%AE%BE%E7%BD%AE-HttpClient-%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%87%E8%AF%86.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利