我想将电子邮件地址作为 URL 字符串中的参数传递,但隐藏它。URL 字符串是在 Java 例程中构造的,接收请求的 jsp 页面会将字符串传递给服务器端 java 例程以对其进行解码。一定有人已经写了这段代码,但我找不到它 - 可能没有问正确的问题。谢谢。弗雷德
我想准备一个字符串,将其放入“post”请求中。不幸的是,我发现的所有对 url 进行编码的方法似乎都只对少数字符应用百分比编码。各种方法,例如。HttpUtility.UrlEncode,保留一些字符,例如 () 和 \xc2\xa7 不变。
我刚开始使用 jmeter。我的应用程序返回一个带有加密值的 url 作为响应,它必须作为获取下一页的请求传递。加密值总是以“=”结尾,例如。“ http://mycompany.com/enc=EncRypTedValue= ”。在将值作为请求传递时,“=”被替换为一些其他字符,例如 '%3d' ex " http://mycompany.com/enc=EncRypTedValue%3d " 。由于令牌已更改,我的应用程序未为请求提供服务。
我正在尝试解析包含括号的URI - [和] - .我试图用URI.parse直接解析它,但括号导致失败.因此我尝试用CGI :: escape编码URI来处理括号,但是当我尝试用URI.parse解析这个编码的URI时,它似乎不会将它识别为URI并将整个URI放入路径中宾语.
在irb会议上演示;
irb(main):001:0> require 'uri'
=> true
irb(main):002:0> require 'cgi'
=> true
irb(main):003:0> name = "http://www.website.com/dir1/dir[2]/file.txt"
=> "http://www.website.com/dir1/dir[2]/file.txt"
irb(main):004:0> encoded_name = CGI::escape(name)
=> "http%3A%2F%2Fwww.website.com%2Fdir1%2Fdir%5B2%5D%2Ffile.txt"
irb(main):005:0> parsed_name = URI.parse(encoded_name)
=> #<URI::Generic:0x00000001e8f520 URL:http%3A%2F%2Fwww.website.com%2Fdir1%2Fdir%5B2%5D%2Ffile.txt>
irb(main):006:0> parsed_name.scheme
=> nil
irb(main):007:0> parsed_name.host
=> nil
irb(main):008:0> parsed_name.path
=> "http%3A%2F%2Fwww.website.com%2Fdir1%2Fdir%5B2%5D%2Ffile.txt"
irb(main):009:0> URI.split(encoded_name)
=> [nil, nil, nil, nil, nil, "http%3A%2F%2Fwww.website.com%2Fdir1%2Fdir%5B2%5D%2Ffile.txt", nil, nil, nil]
Run Code Online (Sandbox Code Playgroud)
无论如何,我现在的工作是以下丑陋但有效的黑客攻击
encoded_name = name.gsub(/\[/,"%5B").gsub(/\]/,"%5D")
Run Code Online (Sandbox Code Playgroud)
使用URI.parse解析它会产生所需的结果,但如果其他奇怪的字符进入我的URI,它将无法应对.所以我的问题是,有没有一种坚实的方法可以做到这一点,不会失败?
在特定的网页上,当我将鼠标悬停在某个链接上时,我可以看到该文本为"bishop",但当我将该链接复制并粘贴到TextPad时,它显示为"%62%69%73%68%6F% 70" .这是什么类型的代码,如何将其转换为文本?谢谢!
我正在阅读http://dev.twitter.com/pages/auth上的演练,但编码回调URL时似乎存在不一致.回调列为:
oauth_callback - http:// localhost:3005/the_dance/process_callback?service_provider_id = 11
签名基本字符串列为:
POST&... oauth_callback%3D http%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3D ...
这里的回调似乎是双重编码的.
签名的授权标题列为:
OAuth oauth_nonce ="QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk",oauth_callback =" http%3A%2F%2Flocalhost%3A3005%2Fthe_dance%2Fprocess_callback%3Fservice_provider_id%3D11 ",...
这里,回调似乎是单个URL编码.为什么他们不一致?
所以,我有一个庞大的XML文件,我想删除所有CDATA部分,并用安全的,HTML编码的文本节点替换CDATA节点内容.
用正则表达式剥离CDATA当然会破坏解析.是否有LINQ或XmlDocument或XmlTextWriter技术将CDATA与编码文本交换?
我还不太关心最终的编码,只是如何用我选择的编码替换这些部分.
原始例子
---
<COLLECTION type="presentation" autoplay="false">
<TITLE><![CDATA[Rights & Responsibilities]]></TITLE>
<ITEM id="2802725d-dbac-e011-bcd6-005056af18ff" presenterGender="male">
<TITLE><![CDATA[Watch the demo]]></TITLE>
<LINK><![CDATA[_assets/2302725d-dbac-e011-bcd6-005056af18ff/presentation/presentation-00000000.mp4]]></LINK>
</ITEM>
</COLLECTION>
---
Run Code Online (Sandbox Code Playgroud)
应该成为
<COLLECTION type="presentation" autoplay="false">
<TITLE>Rights & Responsibilities</TITLE>
<ITEM id="2802725d-dbac-e011-bcd6-005056af18ff" presenterGender="male">
<TITLE>Watch the demo</TITLE>
<LINK>_assets/2302725d-dbac-e011-bcd6-005056af18ff/presentation/presentation-00000000.mp4</LINK>
</ITEM>
</COLLECTION>
Run Code Online (Sandbox Code Playgroud)
我想最终的目标是转向JSON.我试过这个
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath( @"~/somefile.xml"));
string jsonText = JsonConvert.SerializeXmlNode(doc);
Run Code Online (Sandbox Code Playgroud)
但我最终得到了丑陋的节点,即"#cdata-section"键.WAAAAY需要花费很多时间才能重新开发前端以接受这一点.
"COLLECTION":[{"@type":"whitepaper","TITLE":{"#cdata-section":"SUPPORTING DOCUMENTS"}},{"@type":"presentation","@autoplay":"false","TITLE":{"#cdata-section":"Demo Presentation"},"ITEM":{"@id":"2802725d-dbac-e011-bcd6-005056af18ff","@presenterGender":"male","TITLE":{"#cdata-section":"Watch the demo"},"LINK":{"#cdata-section":"_assets/2302725d-dbac-e011-bcd6-005056af18ff/presentation/presentation-00000000.mp4"}
Run Code Online (Sandbox Code Playgroud) 请处理这个琐碎的问题.
我得到一些"SOME_DOMAIN?q\x3dnintendo+mathe\x26um\x3d1\x26ie\x3dUTF-8\x26tbm\x3dshop\x26cid\x3d8123694338777545283\x26sa\x3dX\x26ei\x3dL8cjUJmHO8L30gGa1ICgCw\x26ved\x3d0CI4BEIIIMAk"包含一些转义字符的URL .
删除这些十六进制字符的最佳方法是什么?我有这个下面的片段,它解决了我现在的问题,但看起来不是一个可靠的解决方案.
url = url.replace("\\x2F","/");
url = url.replace("\\x26","&");
url = url.replace("\\x3d","=");
url = url.replace("\\x2F","/");
url = url.replace("\\x2F","/");
Run Code Online (Sandbox Code Playgroud)
我没有遇到过这个问题,但URL之间可能会出现空格.应该URLDecoder.decode解决我的问题?
好心劝告.
谢谢
我有一个以 angular 2 开发的网站。当我在 chrome 中为其提供可选参数时,例如
https://aglplus-ui-demo.azurewebsites.net/home?error_code=10000&transaction_id=1543
这被转换为
https://aglplus-ui-demo.azurewebsites.net/home%3Ferror_code%3D10000%26transaction_id%3D1543
并且无法在 chrome 中找到该页面。但是,当我在隐身模式下粘贴相同的 url 时,它运行得很好。我是 angular 的新手,无法找到相同的原因。你能指引我走向正确的方向吗?
我正在尝试使用 System.Net.Http.HttpClient PostAsync 方法进行 api 调用。它在 await _httpClient.PostAsync(requestUri, stringContent); 后永远挂起;
HttpClient 配置:
_httpClient = new System.Net.Http.HttpClient(new HttpClientHandler
{
UseDefaultCredentials = WithDefaultCredentials,
AllowAutoRedirect = false
});
_httpClient.DefaultRequestHeaders.Accept.Clear();
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(APPLICATION_JSON));
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(ApplicationXWwwFormUrlencoded));
if (!string.IsNullOrEmpty(CultureInfo.CurrentUICulture.Name))
{
_httpClient.DefaultRequestHeaders.AcceptLanguage.Add(new
StringWithQualityHeaderValue(CultureInfo.CurrentUICulture.Name));
}
Run Code Online (Sandbox Code Playgroud)
异步后调用:
var stringContent = new StringContent(content);
stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded");
var response = await _httpClient.PostAsync(requestUri, stringContent);
var responseContent = await response.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)