0

がにNSURLRequest追加%0されrequestます。文字列を作成してbase 64に変換してからurlに送信しましたNSURLRequestが、自動的に追加%0されています。以下は私が使用しているコードです。

に変換するとこうなりbase 64ます。

 NSData *plainTextData = [totalStr dataUsingEncoding:NSUTF8StringEncoding];
 NSString *base64String = [plainTextData base64EncodedString];
 NSLog(@"encoded url:%@",base64String);

Api が呼び出されたとき。

NSString *urlStr = [NSString stringWithFormat:@"http://mabct.co/api/checkin/%@", [code valueForKey:@"code"]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
                                [NSURL URLWithString:urlStr]];
                                // [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

NSString *responseString = [MyEventApi sendRequest:request];

NSError *error;
NSData *jsonData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSLog(@"dict in API-------------%@",results);
return results;

これは、base 64 に変換された文字列です。

eyJldmVudElkIjoiNDAiLCJzZWF0IjoiMTBfS2FyYW4gU3VraGlqYV8yNC0wNC0yMDEzIDE3OjE3IiwidXNlcklkIjoiMTAifQ==

NSURLRequest送っているのはこれ。

eyJldmVudElkIjoiNDAiLCJzZWF0IjoiMTBfS2FyYW4gU3VraGlqYV8yNC0wNC0y%0D%0AMDEzIDE3OjE3IiwidXNlcklkIjoiMTAifQ==

これは私がエンコードで送信しているものです

"{"eventId":"47","seat":"10_Karan Makhija_24-04-2013 10:06","userId":"10"}"

何が悪いのかわかりません。上記のガイドをお願いします。前もって感謝します。

4

1 に答える 1

0

%0D%0A元の文字列に追加されていることがわかります。私はそれをグーグルで調べたところ、次のことがわかりました:

%0D%0A は のエンコードされた ASCII 印刷不能文字で、Microsoft プラットフォームでは NewLine です。

  1. ファイルの編集中にリターン キーを押して、誤って一部の HTML を置き換えてしまった可能性があるかどうかを検討してください。

2a. エディターがファイルの保存に使用するエンコード (通常は ASCII、ANSI、または Unicode) に注意してください。

2b. Web サーバー (Windows 2003 サーバーで実行されている可能性が高い IIS6) はファイルを UTF-8 エンコードとして提供しますが、これは問題ありません。ファイル。

ここで、確認したい場合はSOURCEです。

編集

Web サーバーとクライアントが同じエンコーディングを使用していることを確認してください (つまりNSUTF8StringEncoding、他のものでも同じですが)。

また、IF base 64 エンコーディングは Web サーバー上にあります。このようなエンコード/デコードのカテゴリを実装するには、このリンクに従ってください。これがお役に立てば幸いです。

于 2013-04-24T12:35:51.377 に答える