0

データを投稿したいというリンクがあります。

私は次のようなURLエンコーディングを使用しています

http://admin:testsite@www.arabcircleonline.com/index.php?%@=%@",form_urlencode_rfc3986(@"do"),form_urlencode_rfc3986(@"/webservice/whisper/login_chauhankevalp@gmail.com/password_keval/action_whisper/whisperdata_{\"user_status\":\"last123\",\"privacy\":0,\"privacy_comment\":0}

これは、レコードを追加する必要があるときに意図した応答を提供していますが、レコードが追加されていません。ブラウザでこのリンクを実行すると、正常に動作します。これから私を助けてください..私は解決策なしでこの2日間に取り組んでいます

私が使用しているform_urlencode_rfc3986メソッドは、

NSString* form_urlencode_rfc3986(NSString* s) {

CFStringRef charactersToLeaveUnescaped = CFSTR(" ");

CFStringRef legalURLCharactersToBeEscaped = CFSTR("/%&=?$#+-~@<>|\\*,.()[]{}^!");
NSString *result = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(    kCFAllocatorDefault,(__bridge CFStringRef)s,charactersToLeaveUnescaped,legalURLCharactersToBeEscaped,          kCFStringEncodingUTF8));

return [result stringByReplacingOccurrencesOfString:@" " withString:@"+"];

}
4

1 に答える 1

0

あなたはおそらくこれをやろうとしています:

クエリ付きの URL があります。"?"クエリ コンポーネントは、以下に示すように a で区切られます。

URL :=   scheme-authority-path "?" query

あなたの場合、「scheme-authority-path」は

http://admin:testsite@www.arabcircleonline.com/index.php

「クエリ」は、. で区切られたパラメータのリストです"&"

クエリなしの URL 文字列 (スキーム、権限、パス):

NSString* urlString = @"http://admin:testsite@www.arabcircleonline.com/index.php";

BNF などでパラメータ (クエリの一部) を作成します。

parameter := name "=" value

注:名前はヘルパー関数でエンコードする必要があります。

これはコードで対応します:

NSString* parameterString = [NSString stringWithFormat:@"%@=%@",
    form_urlencode_rfc3986(@"do"),
    form_urlencode_rfc3986(            
    @"/webservice/whisper/login_chauhankevalp@gmail.com/password_keval/action_whisper/whisperdata_{\"user_status\":\"last123\",\"privacy\":0,\"privacy_comment\":0")
   ]; 

クエリ文字列は、パラメータを連結 (エンコード) し、それらを で区切ることによって構成されます"&"。たとえば、BNF では次のようになります。

query  := parameter ["&" parameter] 

パラメーターは 1 つしかないため、クエリ文字列は単なるパラメーター文字列になります。

NSString* queryString = parameterString;

ここで、urlString、 a 、およびクエリを連結することにより、以前の urlString (スキーム、オーソリティ、およびパス) とクエリから完全なURL 文字列 (クエリを含む) を作成します。例えば:"?"

NSString* urlStringWithQuery = [NSString stringWithFormat:@"%@?%@", urlString, queryString];
于 2013-11-06T10:50:57.270 に答える