标签: url-encoding

java.net.URI 因主机部分中的特殊字符而阻塞

我有一个 URI 字符串,如下所示:

http://www.christlichepartei%F6sterreichs.at/steiermark/

我正在用这个字符串创建一个 java.lang.URI 实例,它成功了,但是当我想检索主机时,它返回 null。如果我完全按照上面显示的方式输入它,Opera 和 Firefox 也会阻塞在这个 URL 上。但是如果 URI 类无效,不应该抛出一个 URISyntaxException 吗?那么我怎样才能检测到 URI 是非法的呢?

当我使用产生的 URLDecoder 解码字符串时,它的行为也相同

http: //www.christlicheparteiösterreichs.at/steiermark/

现在这被 Opera 和 Firefox 接受,但 java.net.URI 仍然不喜欢它。我该如何处理这样的 URL?

谢谢

java http url-encoding

6
推荐指数
1
解决办法
2924
查看次数

stringByAddingPercentEscapesUsingEncoding:和stringByReplacingPercentEscapesUsingEncoding有什么区别:

2种方法之间的区别是什么,请 stringByAddingPercentEscapesUsingEncoding:stringByReplacingPercentEscapesUsingEncoding:

我已经多次阅读过NSString Class Reference但仍然没有得到它.

另外,还有一种方法可以强制这些方法编码"+"符号吗?

我的iPhone应用程序中,我必须urlencode base64编码(即字母,数字,加号和斜杠)头像,最后使用该CFURLCreateStringByAddingPercentEscapes方法而不是上述方法...

- (NSString*)urlencode:(NSString*)str
{
    return (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
        NULL,
        (__bridge CFStringRef) str,
        NULL,
        CFSTR("+/"),
        kCFStringEncodingUTF8));
}
Run Code Online (Sandbox Code Playgroud)

objective-c url-encoding nsstring ios

6
推荐指数
1
解决办法
9582
查看次数

MVC .NET中的URL参数编码

我在MVC 4 .NET应用程序中有一个控制器,它接收一个字符串作为URL的参数.这来自重定向到控制器的aspx页面Route.config.

如果我在客户端中为参数发送此值: fwdgerhb+bhrth+ftrgbhrt

我在服务器上获得以下值: fwdgerhb bhrth ftrgbhrt

服务器将URL参数值解释为编码的URL并替换+.但它没有经过URL编码.对于特殊字符的其他组合,如果它们出现在参数值中,则会发生这种情况.

IIS服务器中是否有配置参数将服务器配置为不尝试对此值进行URL解码?

示例请求:

mypage.aspx?value=cat+dog    (NOT ENCODED)
Run Code Online (Sandbox Code Playgroud)

路线配置

static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRouteLowercase(
        name: "MyRouter",
        url: "mypage.aspx",
        defaults: new { controller = "My", action = "DoLog" }
    );
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public class MyController : Controller
{
    [AllowAnonymous]
    public ActionResult DoLog(string value)
    {
        //Here value has "cat dog"
    }
}
Run Code Online (Sandbox Code Playgroud)

c# iis parameters url url-encoding

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

浏览器支持URL中的UTF8编码字符

如果我使用特殊的UTF8编码字符导航到以下URL,我会在Web浏览器中获得不同的结果:

http://example.com/lörickè

  • Firefox 37 - 如上所示显示正确的URL.
  • Chrome 42 - 如上所示显示正确的网址.
  • Edge - 如上所示显示正确的URL.
  • IE 11 - 显示编码的URL百分比http://example.com/l%c3%b6rick%c3%a8/

我在哪里可以找到支持此功能的浏览器和版本列表,并且是否有关于新Microsoft Edge浏览器是否支持此功能的公告.

StackOverflow帖子为有兴趣的人强调了上述问题.

browser url encoding utf-8 url-encoding

6
推荐指数
1
解决办法
5937
查看次数

如何使用 Python 正式插入 URL 空间(%20)?

当在 ebay 中输入多词搜索词时,结果 URL 类似于(例如“demarini cf5 cf12”):

http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=demarini%20cf5%20cfc12
Run Code Online (Sandbox Code Playgroud)

我希望用 Python 构建这个 URL,以便可以直接访问它。所以这是连接基本 URL 的情况:

http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=
Run Code Online (Sandbox Code Playgroud)

...与搜索词。马上。我正在%20为空格添加 ,因此:

baseUrl = 'http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw='
searchTerm = 'demarini cf5 cf12'
searchTerm = ('%20').join(searchTerm.split(' '))
finalUrl = baseUrl + searchTerm
Run Code Online (Sandbox Code Playgroud)

在 Python 中执行此操作的更正式方法是什么?我相信这种任务的名称是 URL 编码?

python url urllib urllib2 url-encoding

6
推荐指数
1
解决办法
7199
查看次数

RestSharp - 数组作为查询字符串参数

我无法将数组(int 数组)作为查询字符串参数传递给 RestSharp 客户端

var client = new RestClient(baseUrl);
client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest(_endpoint, Method.GET);
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("contenttype", "application/json; charset=utf-8");
            request.AddHeader("Accept", "text/html, application/xhtml+xml, image/jxr, */*");


//i tried with
request.AddParameter("messageIds", "[1,2,3]");
or
request.AddParameter("messageIds", new int[] {1,2,3} );
or
request.AddQueryParameter("messageIds", "[1,2,3]");
or
request.AddQueryParameter("messageIds", new int[] {1,2,3} );
Run Code Online (Sandbox Code Playgroud)

我认为问题与参数的 UrlEncoding 有关

如果我使用“new int[] {1,2,3}”(AddParameter 和 AddQueryParameter)传递值,则 url 的构建方式如下:

ResponseUri = {https://demo.xxxxxxxx.com:8181/ws/messages/zippedMessages?messageIds=System.Int32[]}
Run Code Online (Sandbox Code Playgroud)

如果我将值作为字符串“[1,2,3]”(AddParameter 和 AddQueryParameter)传递,则 url 的构建方式如下:

ResponseUri = {https://demo.xxxxxxxx.com:8181/ws/messages/zippedMessages?messageIds=[1%2C2%2C3]}
Run Code Online (Sandbox Code Playgroud)

相反,工作网址应该是:

ResponseUri = {https://demo.xxxxxxxx.com:8181/ws/messages/zippedMessages?messageIds=%5B1,2,3%5D}
Run Code Online (Sandbox Code Playgroud)

或者至少:

ResponseUri = {https://demo.xxxxxxxx.com:8181/ws/messages/zippedMessages?messageIds=[1,2,3]}
Run Code Online (Sandbox Code Playgroud)

“AddParameter”方法对逗号进行编码,但不对 …

c# urlencode url-encoding restsharp asp.net-web-api

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

URLDecoder正在将“ +”转换为空间

我在一个查询参数中有一个哈希键,它可以与其他特殊字符一起使用+字符。问题是,当此URL得到解码时,URLDecoder将+ char转换为空间。有没有一种方法可以强制URLDecoder不将“ +”转换为空间。

java url url-encoding urldecode

6
推荐指数
2
解决办法
3720
查看次数

在URI中转义+(加号)

当用户在我的网站上输入电子邮件时,我会发送包含链接的电子邮件验证电子邮件.链接看起来像:

http://mysite.com/VerifyEmail?email=name@domain.com&token=12341234

此特定用户的电子邮件包含"+"(加号),因此链接如下所示:

http://mysite.com/VerifyEmail?email=foo+bar@domain.com&token=12341234

单击链接时(至少在Firefox中)加上替换为空格.

问题:我在.net中使用什么URL编码功能来逃避加号.

注意:Uri.EscapeUriString(email)叶子加完整.

.net urlencode url-encoding

5
推荐指数
1
解决办法
2645
查看次数

asp.net中查询字符串的最大长度

我知道查询字符串的最大长度因浏览器而异.Internet Explorer最多可包含2048个字符.

如果我在代码中执行URLEncode,这些编码字符是否会被视为额外字符?

例如,假设我有两个文本框.在通过查询字符串HttpUtility.UrlEncode(TextBox2.Text)传递文本框的值之前,我执行然后通过查询字符串将这些文本框值传递给另一个网页.

假设URL可能如下所示:WebForm2.aspx?Username=Kutti&Password=Pa%26%26word.

这个编码的东西%26%26是否会被视为URL中的额外字符?

换句话说,它会采取Pa%26%26word相同的字符Pa&&word吗?

c# asp.net url-encoding query-string

5
推荐指数
1
解决办法
6519
查看次数

Swift - 如何使用"x-www-form-urlencoded"内容类型发送POST请求

我搜索了这么多,没有明确的说明用"x-www-form-urlencoded"内容类型发送POST请求.我想知道如何做到这一点,如果你知道如何用Alamofire这样做,那将是一个更好的方法.任何帮助将不胜感激.

request url-encoding ios swift alamofire

5
推荐指数
1
解决办法
8469
查看次数