我有一个代表网址的字符串,我想通过c#下载内容
我的网址包含从右到左标记和从左到右标记%E2%80%8F和%E2%80%8E.
当我在浏览器中粘贴网址时,我可以显示该文件.当我在.net中使用代码时,我得到一个错误(因为.net忽略那些标记并且不会在请求中发送它们.
这是我得到的查询字符串
/ MBA%20%281%29 /%D7%90%D7%A1%D7%98%D7%A8%D7%98%D7%92%D7%99%D7%94%20%D7%A2%D7% A1%D7%A7%D7%99%D7%AA%20%D7%AA%D7%97%D7%A8%D7%95%D7%AA%D7%99%D7%AA%20%28%E2% 80%8F%EF%BB%BF13015%E2%80%8E%29%E2%80%8F /%D7%93%D7%A4%D7%99%20%D7%A0%D7%95%D7%A1 %D7%97%D7%90%D7%95%D7%AA%20%D7%9C%D7%9E%D7%91%D7%97%D7%9F /%D7%90%D7%A1%D7% 98%D7%A8%D7%98%D7%92%D7%99%D7%94%20%D7%93%D7%A3%20%D7%A0%D7%95%D7%A1%D7%97% D7%90%D7%95%D7%AA-2%20%D7%A2%D7%9E-%203%20%D7%A2%D7%9E%D7%95%D7%93%D7%95%D7 %AA%20%D7%9C%D7%A8%D7%95%D7%97%D7%91.pdf
使用小提琴我可以.net发送
/ MBA%20(1)/%D7%90%D7%A1%D7%98%D7%A8%D7%98%D7%92%D7%99%D7%94%20%D7%A2%D7%A1 %D7%A7%D7%99%D7%AA%20%D7%AA%D7%97%D7%A8%D7%95%D7%AA%D7%99%D7%AA%20(%EF%BB% BF13015)/%D7%93%D7%A4%D7%99%20%D7%A0%D7%95%D7%A1%D7%97%D7%90%D7%95%D7%AA%20%D7% 9C%D7%9E%D7%91%D7%97%D7%9F /%D7%90%D7%A1%D7%98%D7%A8%D7%98%D7%92%D7%99%D7%94 %20%D7%93%D7%A3%20%D7%A0%D7%95%D7%A1%D7%97%D7%90%D7%95%D7%AA-2%20%D7%A2%D7 %9E-%203%20%D7%A2%D7%9E%D7%95%D7%93%D7%95%D7%AA%20%D7%9C%D7%A8%D7%95%D7%97% D7%91.pdf
你会注意到标记消失了.
任何想法如何解决?
using (HttpClient client = new HttpClient())
{
using (var sr = client.GetAsync(s).Result)
{
Console.WriteLine(sr.Headers);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试手动创建uri并将其传递给httpClient - 保存结果.sr - 得到403错误代码而不是200(我提供的链接无效但最终结果是相同的).
我不久前在我的应用程序上实现了谷歌登录。一切正常。我请求谷歌个人资料和电子邮件范围,并在使用我在应用程序中收到的令牌调用https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=时,我得到了用户个人资料。
今天我运行代码,我得到了没有个人资料的令牌,只有电子邮件和电子邮件经过验证。通过 android 和通过 web 返回与个人资料登录。唯一的问题是ios。我还可以看到 ios 中的 idtoken 比我通过 android/web 收到的要小
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().clientID = kClientId
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/plus.login")
GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/plus.me")
GIDSignIn.sharedInstance().signInSilently()
Run Code Online (Sandbox Code Playgroud)