0

iPhoneでmegnto APIのログインメソッドを呼び出す方法を教えてもらえますか?xmlrpcライブラリを使用してandriodで実行しました

// ...
String sessionId = "";
//HashMap<string , String> params = new HashMap</string><string , String>();
//params.put("apiUser", "developer");
//params.put("apiKey", "magento123");
XMLRPCClient client = new XMLRPCClient("http://some-site.com/index.php/api/xmlrpc/");
try {
    /*
        sessionId = (String)client.callEx("login", new Object[]{params});
        will cause
        DEBUG/MY_XMLRPCException_MSG(196): XMLRPC Fault: Calling parameters do not match signature 1
    */
    sessionId = (String)client.call("login", "developer", "magento123");
    Log.d("MY_XMLRPC_SUCCESS_SESSION_ID", sessionId);
}
catch (XMLRPCException e) {
    Log.d("MY_XMLRPCException_MSG", e.getMessage());
}

私はiPhoneの初心者です。どのようにiPhone plzで行うことができますか?

4

1 に答える 1

2

私は解決策を得ました、私は次のリンクで与えられている次のライブラリを使用していることを使用して、gitハブからAFNetworkingライブラリを使用しています https://github.com/lognllc/LogNMagento

いくつかの基本的なステップ

=> LogNMangento アプリケーションをアプリケーションにインポートします

=> magento.h で - (void)settingLogin:(completionBlock) completionBlock;

=> magento.mで

- (void)settingLogin:(completionBlock)completionBlock
{

standardUserDefaults = [NSUserDefaults standardUserDefaults];
array =[standardUserDefaults objectForKey:@"Prefs"];

client = [[MagentoClient alloc] initWithBaseURL:[NSURL URLWithString:[array objectAtIndex:0]]];
[client setDefaultHeader:@"SOAPAction" value:@"urn:Mage_Api_Model_Server_HandlerAction"];
[client registerHTTPOperationClass:[SoapRequestOperation class]];
[SoapRequestOperation addAcceptableStatusCodes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 301)]];
[client setDefaultHeader:@"Content-Type" value:@"text/xml; charset=utf-8"];
[client postPath:@"login" parameters:@{@"username":[array objectAtIndex:1], @"apiKey": [array objectAtIndex:2] }  success:^(AFHTTPRequestOperation *operation, id responseObject) {
    sessionID = responseObject;
    completionBlock(sessionID);
} failure:^(AFHTTPRequestOperation *operationData, NSError *error) {
    NSLog(@"Response is not get");
    sessionID = FAILED_SESSION;
    completionBlock(sessionID);
}];

}

=>これをクラスで呼び出します

[Magento.service settingLogin:^(NSString *session) {
            if(session){

                NSLog(@"Session %@",session);
                if(![session isEqualToString:@"NULL"])
                {
                    [self.view hideToastActivity];


                  self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
                    [self.navigationController pushViewController:self.viewController animated:YES];
                }
                else
                {
                    [self.view hideToastActivity];
                    [self.view makeToast:@"Please Check Store Info"];
                    session=nil;
                }
            }
            else{

            }
        }];
    }
    else
    {
        [self.view makeToast:@"Please insert data"
                    duration:1.0
                    position:@"bottom"
                       ];
    }

はい、ベースURLのmagento.mのINITにも変更を加えます

于 2013-05-03T12:17:33.437 に答える