问题描述
用HttpWebRequest.Create的时候。传递%和|||会自动转化为%25和%7C.问题不需要他转化%25和%7C。有什么办法吗?
解决方案
解决方案二:
把%替换为其他的字符
解决方案三:
问题我采集别的数据需要!采集别人数据需要提交%才能识别~
解决方案四:
对方解码就好了
解决方案五:
URL的协议rfc3986只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。
解决方案六:
引用4楼findcaiyzh的回复:
URL的协议rfc3986只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。
+1服务器端会自动解码。
解决方案七:
引用5楼smthgdin的回复:
Quote: 引用4楼findcaiyzh的回复:
URL的协议rfc3986只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。+1服务器端会自动解码。
我现在用winfrom编写的~~很简单的有米有办法解决这个问题!!
解决方案八:
引用6楼w297088867的回复:
Quote: 引用5楼smthgdin的回复:
Quote: 引用4楼findcaiyzh的回复:
URL的协议rfc3986只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。+1服务器端会自动解码。
我现在用winfrom编写的~~很简单的有米有办法解决这个问题!!
Winform写服务器端?用HttpUtility.UrlDecode解码
解决方案九:
System.Net.HttpWebRequest.Create("http://www.asdfasdf.net/%1").RequestUri.ToString)得到结果:http://www.asdfasdf.net/%251Uri.UnescapeDataString("http://www.asdfasdf.net/%251")得到结果:http://www.asdfasdf.net/%1
解决方案十:
引用7楼findcaiyzh的回复:
Quote: 引用6楼w297088867的回复:
Quote: 引用5楼smthgdin的回复:
Quote: 引用4楼findcaiyzh的回复:
URL的协议rfc3986只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。+1服务器端会自动解码。
我现在用winfrom编写的~~很简单的有米有办法解决这个问题!!
Winform写服务器端?用HttpUtility.UrlDecode解码
我要写个采集器!!懂我意思吗?采集人家的数据~~~
解决方案十一:
引用8楼geyewei的回复:
System.Net.HttpWebRequest.Create("http://www.asdfasdf.net/%1").RequestUri.ToString)得到结果:http://www.asdfasdf.net/%251Uri.UnescapeDataString("http://www.asdfasdf.net/%251")得到结果:http://www.asdfasdf.net/%1
什么意思?那应该怎么做呢?
解决方案十二:
引用2楼w297088867的回复:
问题我采集别的数据需要!采集别人数据需要提交%才能识别~
那是你根本没有搞懂”需要提交%才能识别“是什么意思!提交的url中含有%,那么原始的内容不一定有%号,可能是转义之后才会有%号。绝不是说人家原始的内容就一定有%号。如果你没有这个urlencode概念,就不会理解。
解决方案十三:
引用2楼w297088867的回复:
问题我采集别的数据需要!采集别人数据需要提交%才能识别~
停留在这个上面纠结,根本是浪费时间。你应该把你的”采集数据的需要“稍微深入一点明白地说明。
解决方案十四:
建议跟通信协议相关的东西,还是和对方多沟通,而不是自己在那瞎猜要提交%才能识别,到底要提交个什么东西,问清楚
解决方案十五:
还有,不管你最后弄明白了没有,都是要真正测试一下才能知道到底好用不好用也许你现在就已经能正常通信了,结果还在那里纠结这个.试了不好用,然后再找原因,改了再试.想一步到位,你得非常熟悉才行.
解决方案:
引用14楼Z65443344的回复:
还有,不管你最后弄明白了没有,都是要真正测试一下才能知道到底好用不好用也许你现在就已经能正常通信了,结果还在那里纠结这个.试了不好用,然后再找原因,改了再试.想一步到位,你得非常熟悉才行.
这么跟你说url_encodegbk传递参数的时候不是有%字符串,然后get发送过去的时候.会吧%直接变成%25了。就怎么简单,如何解决这个问题。C#winfrom
解决方案:
引用12楼sp1234的回复:
Quote: 引用2楼w297088867的回复:
问题我采集别的数据需要!采集别人数据需要提交%才能识别~停留在这个上面纠结,根本是浪费时间。你应该把你的”采集数据的需要“稍微深入一点明白地说明。
这么跟你说url_encodegbk传递参数的时候不是有%字符串,然后get发送过去的时候.会吧%直接变成%25了
解决方案:
试试fastCSharp.uri.CreateAbsolute("http://www.asdfasdf.net/%1",fastCSharp.uri.flags.ShouldBeCompressed|fastCSharp.uri.flags.E_QueryNotCanonical)
解决方案:
引用15楼w297088867的回复:
Quote: 引用14楼Z65443344的回复:
还有,不管你最后弄明白了没有,都是要真正测试一下才能知道到底好用不好用也许你现在就已经能正常通信了,结果还在那里纠结这个.试了不好用,然后再找原因,改了再试.想一步到位,你得非常熟悉才行.这么跟你说url_encodegbk传递参数的时候不是有%字符串,然后get发送过去的时候.会吧%直接变成%25了。就怎么简单,如何解决这个问题。C#winfrom
还是不大明白你到底是碰到了什么问题,如果你能更详细的描述一下,就对其他人更有帮助了。不过我肢解一下你自己的话,看看i不是下面这回事?如果【get发送过去的时候.会吧%直接变成%25了】这个现象存在的话,说明在【get发送过去的时候】处理里面已经进行了编码变换了,就不需要通过【url_encodegbk传递参数的时候】这个处理了。
解决方案:
我想sp1234的意思是你不需要太关心%的问题。url_encode的目的是保证URL是合法有效的,所以会用%25替换%。程序自己会在处理的时候做url_decode处理,你如果直接把%发送到服务器,因为%不是合法的URL字符,反而不能识别了。有些虽然是标准,但是也有不按标准办事的,所以最关键的就是你在程序里面试一下把被编码的网址发送到服务器,看看有没有返回应该返回的网页。如果没有的话,大家在分析一下是什么原因。看一下:引用16楼w297088867的回复:
Quote: 引用12楼sp1234的回复:
Quote: 引用2楼w297088867的回复:
问题我采集别的数据需要!采集别人数据需要提交%才能识别~停留在这个上面纠结,根本是浪费时间。你应该把你的”采集数据的需要“稍微深入一点明白地说明。
这么跟你说url_encodegbk传递参数的时候不是有%字符串,然后get发送过去的时候.会吧%直接变成%25了
解决方案:
高手,问题解决了嘛?说下咋解决的啊。顺便结下帖。
解决方案:
贴下找到的方法:搞定了,使用uil创建httpWebRequest实例,如下:httpWebRequest=(HttpWebRequest)HttpWebRequest.Create(newUri(url,true));Uri对应构成函数说明如下:...原帖地址:
解决方案:
解决方案:
C#转义字符上标有123为什么没有4,求问4以后的上标转义字符是什么?急急急,大神们快来帮帮我啊
解决方案:
14年的帖子都被翻出来。。。我也是醉了估计楼主早就不在了最主要是的上面的人讨论了那么多我就不明白了。。算了不说了自己看图吧请告诉我哪里转义了?。。居然还讨论除了这么多出来都没用过或者说都没试一下就在瞎想回答吗?。。