1

オブジェクトASIFormDataRequestを使用してWebサイトのメンバーエリアにログインしようとしています。本当に助けが必要です。私は今立ち往生しています。それを機能させるにはどうすればよいですか?サンプルコードは素晴らしいでしょう。ありがとう。

インターネット上のログインページ:

<form action="https://www.example.org/login.php" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">


<input type="hidden" name="do" value="login" />
<input type="hidden" name="url" value="/login.php" />
<input type="hidden" name="vb_login_md5password" />
<input type="hidden" name="vb_login_md5password_utf" />


<fieldset class="fieldset">
<td>Username:<br /><input type="text" name="vb_login_username"/>
<td>password:<br /><input type="password" name="vb_login_password"/>

<label for="cb_cookieuser"><input type="checkbox" name="cookieuser" value="1" id="cb_cookieuser"/>Remember me?</label>
<input type="submit" class="button" value="Logga in" accesskey="s" tabindex="1" />
<input type="reset" class="button" value="&Aring;terst&auml;ll f&auml;lt" accesskey="r" tabindex="1" />
</table>
</fieldset>


</form>

これまでの私のコード:

NSString *username, *password; 
        username = [NSString stringWithFormat:@"%@", usernameField.text];
        password = [NSString stringWithFormat:@"%@", passwordField.text];
        NSLog(@"Trying to sign in with user:%@ pass:%@",username,password);

        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"https://www.example.org/login.php"]];
        [request setPostValue:username forKey:@"vb_login_username"];
        [request setPostValue:password forKey:@"vb_login_password"];
        [request setTimeOutSeconds:120];
        [request setDelegate:self];
        [request startAsynchronous];

+ (NSString*)md5HexDigest:(NSString*)input {
    const char* str = [input UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(str, strlen(str), result);

    NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
    for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
        [ret appendFormat:@"%02x",result[i]];
    }
    return ret;
}
4

1 に答える 1

0

NSURLを使用して正しく作成されない場合があります。URLWithStringなぜ2つ作成したのですかnsstring NSString *username, *password;。変更しない場合は、次のように直接使用できます。-

これを試して:-

   NSString *str = @"https://www.example.org/login.php";
   NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
   ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
  [request setPostValue:usernameField.text forKey:@"vb_login_username"];
  [request setPostValue:passwordField.text forKey:@"vb_login_password"];
  [request setTimeOutSeconds:120];
  [request setDelegate:self];
  [request startAsynchronous];
  NSLog(@"%@",[request responseString]);
  NSLog(@"%d",[request responseStatusCode]);
于 2011-10-25T04:25:11.473 に答える