如何从URL中捕获带有ASHX文件中多个值的井号(#)

时间:2016-10-26 07:22:12

标签: asp.net httprequest webrequest httpcontext ashx

这是我的<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />文件,我使用AndroidManifest.xml从请求网址中捕获多个参数,并且它正常工作但是当我通过URL在Text参数中包含Hash(#)值时。它没有取FLOW的值,这是另一个参数(在Text参数旁边)。

所以它适用于:

ASHX

它不起作用:

httpcontext

我的ASHX文件:

http://localhost:10326/ussd.ashx?user=MSL&pass=MSL663055&tid=65506&msisdn=8801520101525&text=***3333**&flow=begin&momt=mo

1 个答案:

答案 0 :(得分:2)

在将参数值添加到URL之前,您需要对其进行URI编码。通过这种方式,服务器不会被不安全的字符混淆,例如'#',它在作为URL的一部分包含时具有其自身的含义。请参阅RFC 3986 Section 2

请参阅Encode URL in JavaScript,了解如何使用JavaScript对发送的数据进行编码。无论在URL中发送数据是什么,都需要进行编码。请求到达服务器后,您无能为力。在不知道如何创建URL的情况下,我无法提供更多内容。

简而言之:问题在于您的客户端代码而不是您的ASHX文件。