Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能发送带有/(正斜杠)字符的标题?_Java_Ios_Http_Encoding_Afnetworking - Fatal编程技术网

Java 为什么我不能发送带有/(正斜杠)字符的标题?

Java 为什么我不能发送带有/(正斜杠)字符的标题?,java,ios,http,encoding,afnetworking,Java,Ios,Http,Encoding,Afnetworking,我在jstring中获得cookie值。服务器正在以Base64编码的UTF8字符串的形式发送它。我比较了服务器和终端的字符串,得到了完全相同的字符串 现在我需要用n=作为前缀和来修饰这个值作为后缀。(我正在代码第2行中执行此操作) 若我不使用第1行,那个么Java服务器的字符串将为null。否则服务器将获得价值 jstring = [jstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString

我在
jstring
中获得cookie值。服务器正在以Base64编码的UTF8字符串的形式发送它。我比较了服务器和终端的字符串,得到了完全相同的字符串

现在我需要用
n=
作为前缀和
来修饰这个值作为后缀。(我正在代码第2行中执行此操作)

若我不使用第1行,那个么Java服务器的字符串将为null。否则服务器将获得价值

jstring = [jstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *cookieVal=[NSString stringWithFormat:@"n=%@%@",jstring,@";"];
[self.requestSerializer setValue:cookieVal forHTTPHeaderField:@"Cookie"];
我们在iOS中使用
AFNetworking
进行请求和响应。我们观察到了非常奇怪的模式

若字符串包含
/
(正斜杠),那个么我们在Java服务器上得到了填充错误,若字符串不包含
/
,那个么字符串将按要求运行

如第3行所示,我们将此值作为http/https请求的头发送


我已经尝试了很多东西,比如(用我的字符串尝试了最后一段代码)。另外,尝试使用不同的编码,但问题仍然存在

此url转换不会转换ios设备键盘中的所有特殊字符。 我们必须用blow函数来转换它。将此用作类别

- (NSString *) URLEncodedString_ch {


    return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self,  NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]%~_. ", CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)));
}

我正在使用相同的代码/正在%2F中转换,请尝试转换两次,可能服务器端正在进行解码。