相关疑难解决方法(0)

何时将空间编码为加号(+)或%20?

有时,空格会将URL编码为+符号,有时则会%20.有什么区别,为什么会发生这种情况?

urlencode

451
推荐指数
4
解决办法
22万
查看次数

如何对字符串进行URL编码

我有一个NSString带有空格和&字符的URL字符串().如何url编码整个字符串(包括&&符号和空格)?

iphone objective-c nsstring ipad ios

188
推荐指数
11
解决办法
20万
查看次数

Objective-C和Swift URL编码

NSString喜欢这样的:

http://www.
Run Code Online (Sandbox Code Playgroud)

但我想将其转换为:

http%3A%2F%2Fwww.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

objective-c urlencode nsstring ios swift

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

ObjC中的NSURL编码

如何在NSURL中进行URL编码?

谢谢

cocoa

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

从NSURL转换为NSURLRequest时丢失/

我正在我的iphone应用程序中执行HTTP Post,并且我发送到服务器的其中一个参数是URL.问题是,当我从NSURL转换为NSURLRequest时,字符串http://www.slashdot.org变为http:/www.slashdot.org(缺少正斜杠之一)

有没有解决的办法?

这是我正在使用的代码:

NSString *host = @"example.host.com";
NSString *urlString = [NSString stringWithFormat:@"/SetLeaderUrl.json?leader_email=%@&url=%@",localEmail,urlToPublish];
NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:host path:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *jsonString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

我已经使用NSLog来查看它丢失'/'的位置,它位于第四行:

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
Run Code Online (Sandbox Code Playgroud)

感谢您抽出宝贵时间阅读!

iphone cocoa-touch objective-c

10
推荐指数
1
解决办法
6835
查看次数

IOS不编码加(+)登录x-www-form-urlencoded POST请求?

我使用以下代码,

NSString *jsonD = [NSString stringWithFormat:@"rawJson=%@",[fbUserInfo jsonUTF8String]];
NSData *myRequestData = [jsonD dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:policy timeoutInterval:20.0];

[ request setHTTPMethod: @"POST" ];
[request setValue:[NSString stringWithFormat:@"%d", [myRequestData length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[ request setHTTPBody: myRequestData ];
Run Code Online (Sandbox Code Playgroud)

在这段代码中我有日期2013-06-29T18:33:17+0000.问题是我的服务器接收日期为 2013-06-29T18:33:17 0000.看到空间.我不知道为什么会这样.

iphone objective-c ios ios6

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

stringByReplacingOccurrencesOfString无法按预期工作

有问题.这是我的代码:

Latitude = [TBXML textForElement:lat]; //Latitude & Longitude are both NSStrings
Longitude= [TBXML textForElement:lon];
NSLog(@"LAT:%@ LON:%@",Latitude,Longitude);
NSString *defaultURL = @"http://api.wxbug.net/getLiveWeatherRSS.aspx?ACode=000000000&lat=+&long=-&unittype=1";
newURL = [[defaultURL stringByReplacingOccurrencesOfString:@"+" 
                                                        withString:Latitude]
                                    stringByReplacingOccurrencesOfString:@"-" 
                                                        withString:Longitude];
NSLog(@"%@",newURL);
Run Code Online (Sandbox Code Playgroud)

这是输出:

LAT:-33.92 LON:18.42 
http://api.wxbug.net/getLiveWeatherRSS.aspxACode=000000000&lat=18.4233.92&long=18.42&unittype=1
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,附加代码发生了一些奇怪的事情.我在这里做错了吗?

iphone cocoa-touch

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

从Cocoa发送POST表单

大家好!我从http://deusty.blogspot.com/2006/11/sending-http-get-and-post-from-cocoa.html上读到了一篇文章,但我没有得到一些东西.我尝试用它来建立NSURLConnection,以及它根本不会接收数据?如果您对此感兴趣,请访问www.lockerz.com.

http://pastebin.com/8fP9TX8q.修复链接,因为我不能发布超过1.

它实际上说连接失败了,我不知道为什么......

macos cocoa

0
推荐指数
1
解决办法
1253
查看次数

如何在编码在简单的http post -objective-c中使用的字符串之前转义所有特殊字符

我正在构建一个简单的http POST请求.在这篇文章中我需要添加一些项目,其中一项是在前一个请求中被拉下来的大型视图状态字符串.我注意到的是,原始请求需要转义所有特殊字符(如下所示)

_ EVENTTARGET =& _ EVENTARGUMENT =& __ VIEWSTATE = %% 3D&

但我不确定我是否在目标c中做到了这一点.目前,当我NSLog出视口状态字符串时,它仍然显示/和=字符.

任何人都可以证实我在正确的道路上吗?如果不是,我将如何转换viewstate中的特殊字符(即 - 而不是=我应该得到%3D)?

- (void)doHttpPostWithViewState:(NSString *)viewstate
{ 
  responseData = [[NSMutableData data] retain];

  NSURL *url = [NSURL URLWithString:@"https://localhost/Login"];
  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

  NSString* theBodyString = [[NSString alloc] initWithFormat:@"__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%@",viewstate];
  NSData *requestData = [theBodyString dataUsingEncoding:NSUTF8StringEncoding];

  NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];

  [request setHTTPMethod:@"POST"];
  [request setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" forHTTPHeaderField:@"Accept"];
  [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
  [request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
  [request setHTTPBody: requestData];
  [request setAllHTTPHeaderFields:headers];

  [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
Run Code Online (Sandbox Code Playgroud)

最后,为了本地调试目的 …

viewstate escaping objective-c

0
推荐指数
1
解决办法
2040
查看次数

发送带有特殊字符iOS的POST请求

我的应用程序调用Web服务登录.通常服务没有任何问题,但是当我有一个特殊字符的密码时(例如:!*'\"();:@&= + $,/?%#[]%),Web服务器不会不允许我登录,因为在服务器端我收到的密码没有特殊字符,例如:

密码插入我的应用程序: test+test

密码接收到Web服务器: testtest

如您所见,请求删除特殊字符实际上我使用以下代码发送登录凭据:

- (id)sendRequestToURL:(NSString *)url withMethod:(NSString *)method withUsername:(NSString*)username withPassword:(NSString*)password andInstallationId:(NSString*)installationId {
    NSURL *finalURL = [[NSURL alloc]init];

    if ([method isEqualToString:@"POST"]) {
        finalURL = [NSURL URLWithString:url];
    } else {
        NSLog(@"Metodo no previsto");
    }

    NSString *post = [NSString stringWithFormat:@"username=%@&password=%@&installationId=%@", username, password, installationId];
    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];

    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)postData.length];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
    [request setURL:finalURL];
    [request setHTTPMethod:method];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];

    NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

0
推荐指数
1
解决办法
4238
查看次数