标签: urlencode

将UITextView/UITextField中的空格编码为URL格式

我正在尝试将UITextView或UITextField的内容作为参数发送到php文件

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@",nameField.text, tagsField.text, dreamEntry.text];
Run Code Online (Sandbox Code Playgroud)

当我记录urlstr时,只要UITextView或UITextField不包含空格,url格式就可以了.我如何将空间转换为%20?

编辑

这是目前的代码,它不仅崩溃,而且没有正确编码url.

name = John Doe&tags =经常出现的梦魇和入口=测试测试测试

转换为

name = John -1844684964oe&tags = recurringightmare&entry = Testing 4.214929e-307sting -1.992836e + 00sting

- (IBAction)sendButtonPressed:(id)sender
{

    NSString *urlString = [[NSString alloc] initWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@", nameField.text, tagsField.text, dreamEntry.text];

    NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSURL *url = [[NSURL alloc] initWithString:encodedString];

    NSLog(encodedString);

    NSLog(urlString);

    [urlString release];
    [url release];
    [encodedString release];


}
Run Code Online (Sandbox Code Playgroud)

iphone urlencode nsstring uitextfield uitextview

8
推荐指数
2
解决办法
1万
查看次数

得到错误400/404 - HttpUtility.UrlEncode没有编码完整的字符串?

为什么以下URL会在下面给出IIS错误:

A)http://192.168.1.96/cms/View.aspx/Show/Small+test '

A2)http://192.168.1.96/cms/View.aspx/Show/Small%20test '< - 这是有效的,但不是来自HttpUtility.UrlEncode()的结果

B)http://192.168.1.96/cms/View.aspx/Show/'%26 $%23funky**!!〜''+ page

A错误:

HTTP Error 404.11 - Not Found
The request filtering module is configured to deny a request that contains a double escape sequence.
Run Code Online (Sandbox Code Playgroud)

B错误:

HTTP Error 400.0 - Bad Request
ASP.NET detected invalid characters in the URL.
Run Code Online (Sandbox Code Playgroud)

/ Show /之后的URL的最后一部分是通过HttpUtility.UrlEncode()发送文本后的结果,因此,根据Microsoft,它是正确的URL编码.

如果我使用HttpUtility.UrlPathEncode()而不是HttpUtility.UrlEncode(),我得到A2结果.但B最终看起来像:

http://192.168.1.96/TVCMS-CVJZ/cms/View.aspx/Show/'&$#funky**!!〜''%20page

仍然是错的.Microsoft是否知道如何对URL进行编码?是否有人编写过正确的方法来执行此操作?

编辑:

我写了自己的编码器:

static public string UrlEncode(string encode)
{
    if (encode == null) return null;
    string encoded = "";

    foreach (char c …
Run Code Online (Sandbox Code Playgroud)

c# iis-6 urlencode

8
推荐指数
1
解决办法
4150
查看次数

允许双URL编码的请求路径有效

我有一个标准的ASP.Net WebForms应用程序在IIS 7.0上运行,带有集成管理管道.我们网站上的许多图像都有文件名中的空格(例如'./baseball drawing.gif').当我们将这些图像放入我们的html页面时,我们会对路径进行编码,以便我们的html img标签看起来像这样<img src='./baseball%20drawing.gif' />

现在,当某些搜索引擎和webcrawler尝试索引我们的网站时,问题就出现了.当他们刮擦我们的页面时,他们将html编码我们已经html编码的路径获取像这样的图像链接'./baseball%2520drawing.gif',其中%25是'%'的url编码.这会导致两个问题:

  1. 当用户从这些搜索引擎获得结果时,他们会收到断开的链接
  2. 当用户尝试导航到这些损坏的链接时,它会在我们的系统中引发错误.

你可以看到这是一个失败的局面.用户得到断开的链接,我们的错误日志中会出现噪音.

我一直试图找出如何纠正这个问题没有运气.这是我尝试过的:

  1. <requestFiltering allowDoubleEscaping='true'>在web.config中设置以防止"404.11 URL Double Escaped error".这修复了第一个错误但导致了一个新错误,"发现了一个潜在危险的Request.Path".
  2. 从中删除'%' <httpRuntime requestPathInvalidChars>以防止"潜在危险的Request.Path"错误.这修复了第二个错误,但现在我们有第三个错误,"无法找到资源".
  3. 我在我的代码中休息了一下Request.Path.看起来它的值是'Ball Image.gif'而不是'Ball%2520Image.gif'.在这种情况下,我不确定它为什么不起作用.

我觉得我有一个超级黑客,我必须禁用一切,而不是真正理解为什么没有任何工作.所以我想我的问题是三折

  1. 为什么解决方案尝试1不解决问题?
  2. 为什么解决方案2没有解决问题?
  3. 为什么我的Request.Path在步骤3中看起来正确但它仍然不起作用?

任何人都可以提供任何帮助将不胜感激.

asp.net validation iis-7 urlencode

8
推荐指数
1
解决办法
7250
查看次数

应该使用encodeURI吗?

javascript的encodeURI函数是否有用?

据我所知,当您尝试发出HTTP请求时,您应该:

  • 一个完整的URI
  • 您想要放入URI的一些片段,它可以是unicode字符串或UTF-8字节序列

在第一种情况下,显然没有什么需要做的来请求它.注意:如果您确实想将其作为参数传递(例如?url = http ...),那么您实际上有第二种情况的实例恰好看起来像一个URI.

在第二种情况下,您应始终将unicode字符串转换为UTF-8,然后在将其添加到URI之前调用encodeURIComponent以转义所有字符.(如果您有UTF-8字节序列而不是unicode字符串,则可以跳过convert-to-utf8步骤).

假设我没有错过任何东西,我看不到encodeURI的有效用途.如果你使用它,很可能你构造了一个无效的URI,然后尝试在事后"消毒"它,这是不可能的,因为你不知道哪些字符是字面上的意图,哪些是打算转义的.

我已经看到很多反对使用escape()的建议,但是没有看到任何人阻止encodeURI.我错过了有效用途吗?

javascript urlencode

8
推荐指数
2
解决办法
3792
查看次数

将空格转换为列表中的%20

我需要将空格转换为%20,用于python数组中的api帖子

tree = et.parse(os.environ['SPRINT_XML'])
olp = tree.findall(".//string")
if not olp:
  print colored('FAILED', 'red') +" No jobs accociated to this view"
  exit(1)
joblist = [t.text for t in olp]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做t.text上面?

python urlencode

8
推荐指数
3
解决办法
3万
查看次数

Angular对ng-src中的url进行编码,并用%2F和'?'替换'/' 与%3F

我有一个带URL的Kibana仪表板:

/logquery/app/kibana#/dashboard/Some-Dashboard?someParameters
Run Code Online (Sandbox Code Playgroud)

我有一个Web应用程序,我试图在上面嵌入仪表板<iframe>.Web应用程序中的URL如下所示

/dashboards/logquery/app/kibana#/dashboard/Some-Dashboard?someParameters
Run Code Online (Sandbox Code Playgroud)

在AngularJs中,我正在做:

ctrl.dashboardUrl = $location.url().replace('/dashboards', '');
Run Code Online (Sandbox Code Playgroud)

在我看来:

<div ng-controller="DashboardCtrl as ctrl">
    <div class="iframe-container">
        <iframe ng-src="{{ctrl.dashboardUrl | trustAsUrl}}"
                height="100%"
                width="100%"
                ng-cloak
                frameborder="0"
                marginheight="0"
                marginwidth="0"></iframe>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

trustAsUrl 过滤器如下:

filtersGroup.filter('trustAsUrl', [
    '$sce',
    function ($sce) {
        return function (val) {
            return $sce.trustAsResourceUrl(val);
        };
    }]);
Run Code Online (Sandbox Code Playgroud)

我有:

$locationProvider.html5Mode({
                enabled: true,
                requireBase: false,
                rewriteLinks: false
            });
Run Code Online (Sandbox Code Playgroud)

这会导致/后面的字符/kibana#与被替换%2F,并?%3F导致Kibana没有能够找到所需的仪表板.

我怎么能克服这个?谢谢!

javascript encoding urlencode angularjs kibana

8
推荐指数
1
解决办法
595
查看次数

如何在ASP.NET MVC中保留未转义的URL参数?

我注意到Stackoverflow登录/注销链接上的returnurl URL参数没有被转义,但是当我尝试将路径作为参数添加到路由时,它会被转义.

所以/ login?returnurl =/questions/ask shows/login?returnurl =%2fquestions%2fask,这有点难看.如何让它不能逃避returnurl值?

这是我在代码中所做的事情:

Html.ActionLink("Login", "Login", "Account", new { returnurl=Request.Path }, null)
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc routes urlencode

7
推荐指数
2
解决办法
5759
查看次数

我如何在XSLT中进行urlencode?

如何在XSLT中对url参数进行urlencode?

在php中有一个函数rawurlencode可以完成我想要的,urlencode根据RFC 3986.

xslt urlencode

7
推荐指数
1
解决办法
7804
查看次数

奇怪的网址编码问题

我有一个奇怪的问题,urlencoding加号+作为针对API的请求的查询参数.API的文档说明:

日期必须采用W3C格式,例如'2016-10-24T13:33:23 + 02:00'.

到目前为止一直很好,所以我使用这个代码(minimalized)生成url,使用Spring的UriComponentBuilder:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssX");
ZonedDateTime dateTime = ZonedDateTime.now().minusDays(1);
String formated = dateTime.format(formatter);

UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromUriString(baseUrl);
uriComponentsBuilder.queryParam("update", formated);
uriComponentsBuilder.build();
String url = uriComponentsBuilder.toUriString();
Run Code Online (Sandbox Code Playgroud)

未编码的查询将如下所示:

https://example.com?update=2017-01-05T12:40:44+01
Run Code Online (Sandbox Code Playgroud)

编码的字符串导致:

https://example.com?update=2017-01-05T12:40:44%2B01
Run Code Online (Sandbox Code Playgroud)

这是(恕我直言)一个正确编码的查询字符串.请参阅%2B替换查询字符串末尾的+in +01.

但是,现在,当我使用编码的url针对API发送请求时,我收到一条错误消息,指出无法处理请求.

但是,如果我在发送请求之前将其替换为%2Ba +,则可以:

url.replaceAll("%2B", "+");
Run Code Online (Sandbox Code Playgroud)

从我的理解,+标志是一个替代whitespace.因此,解码后服务器真正看到的URL必须是

https://example.com?update=2017-01-05T12:40:44 01
Run Code Online (Sandbox Code Playgroud)
  • 我对这个假设是对的吗?

  • 有什么我可以做的,除了联系API的所有者使其使用正确编码的查询,除了奇怪的非标准字符串替换?

更新:

根据规范RFC 3986(第3.4节),+查询参数中的符号不需要编码.

3.4.询问

查询组件包含非分层数据,与路径组件(第3.3节)中的数据一起用于标识
URI方案和命名权限
(如果有)范围内的资源.查询组件由第一个
问号("?")字符表示,并以数字符号("#")字符
或URI的末尾结束.

伯纳斯 - 李等人.标准跟踪[第23页] RFC 3986 URI通用语法
2005年1月

  query       = …
Run Code Online (Sandbox Code Playgroud)

java urlencode

7
推荐指数
1
解决办法
2861
查看次数

Jmeter Http代理服务器抛出java.net.URISyntaxException:索引错误时查询中的非法字符

我正在尝试使用Jmeter记录我的Web客户端 - 服务器通信.配置Jmeter和浏览器以记录应用程序之后.从客户端到服务器发出post请求时,会发生以下错误.知道如何编码正在记录的URL吗?

java.net.URISyntaxException: Illegal character in query at index 238: http://localhost:8080/updateBoxCorrectionInstantly?examKey=16-17-%3ECBSE-%3ETERM%20I-%3ESA1-%3EVI-%3EScience-%3EA&studentName=AMOGH%20YOGESH%20KALE&studentRollno=3&studentND=-1&sheetName=cb8e806b32e9d670698655e0d2da10e3_img001210.jpg&box={%22$center%22:%22(66.0,%202253.0)%22,%22$conf%22:%22H%22,%22$corrected%22:true,%22$isAdminCorrected%22:true,%22$correction%22:%22-%22,%22$isDrawn%22:false,%22coords%22:[36,2214,96,2292],%22isTitle%22:false,%22pos%22:%22-%22,%22pred%22:%22-%22,%22boxTypeId%22:0,%22score%22:1}
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parseHierarchical(URI.java:3092)
at java.net.URI$Parser.parse(URI.java:3034)
at java.net.URI.<init>(URI.java:595)
at java.net.URL.toURI(URL.java:949)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:232)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1075)
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:212)
Run Code Online (Sandbox Code Playgroud)

java put urlencode jmeter

7
推荐指数
1
解决办法
6090
查看次数