0

タイトルがそれを説明していると思います。APIコントローラーのGet関数に問題なくアクセスできます。Post メソッドにアクセスできますが、パラメーター (macAddress) が null です。私は xcode でこのコードの多くのバリエーションを試しました:

        NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",baseURL,controller]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"macAddress=testestest";
NSData *myRequestData = [ NSData dataWithBytes: [ postString UTF8String ] length: [ postString length ] ];
[request setHTTPBody:myRequestData];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

そしてコントローラー:

    public String Post([FromBody]string macAddress)
    {
        //......
    }

(私は同期リクエストとnilレスポンス/エラーを使用していることを認識しており、この側面を理解しようとしています)

助けてくれてありがとう。

4

2 に答える 2

1

[NSString stringWithFormat メソッド] のない *postString があるようです。独自の RESTful API で次のコードを使用します。

NSString *deviceToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"rsdevicetoken"];

NSString *postString = [NSString stringWithFormat:@"token=%@&active=%@&draw=%@&result=%@&message=%@",deviceToken,allNotify, draw, results, message];
NSData *postData = [postString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://www.someurl.com/updateSubscriptions"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];

NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"%@", data);

うまくいけば、これはあなたを助けるでしょう.

于 2013-02-19T20:11:32.517 に答える
0

大げさな推測ですが、macAddress投稿パラメーターが次の形式の01:23:45:67:89:ab場合: 「:」を「%3A」に URL エンコードする必要があります。

于 2013-02-19T20:39:00.397 に答える