加载webView发送请求

来源:互联网 发布:行知职高在哪 编辑:程序博客网 时间:2024/05/16 15:28

  [selfloadWebView:_webViewwithURLString:@"http://sjkdslfskdlnkndsnk"andPostDictionaryOrNil:_para];


- (void) loadWebView:(UIWebView *)theWebView withURLString:(NSString *)urlString andPostDictionaryOrNil:(NSDictionary *)postDictionary

{

    NSURL *url = [NSURLURLWithString:urlString];

    NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url

                                                           cachePolicy:NSURLRequestReloadIgnoringCacheData

                                                       timeoutInterval:60.0];

    

    // DATA TO POST

    if(postDictionary) {

        NSString *postString = [selfgetFormDataString:postDictionary];

        NSData *postData = [postStringdataUsingEncoding:NSUTF8StringEncodingallowLossyConversion:YES];

        

        

        [request setHTTPMethod:@"POST"];

        

        //       [request setValue:@"text/html;charset=utf-8" forHTTPHeaderField:@"Content­-Type"];

        [request addValue:@"IOS"forHTTPHeaderField:@"YUFU-TERMINAL-TYPE"];

        [request addValue:@"1.0.1"forHTTPHeaderField:@"YUFU-TERMINAL-VERSION"];

        [request setValue:@"application/x-www-form-urlencoded; charset=utf-8"forHTTPHeaderField:@"Content-Type"];

        [request setHTTPBody:postData];

    }

    

    [theWebView loadRequest:request];

}

- (NSString *)getFormDataString:(NSDictionary*)dictionary {

    if( ! dictionary) {

        returnnil;

    }

    NSArray* keys = [dictionaryallKeys];

    NSMutableString* resultString = [[NSMutableStringalloc] init];

    for (int i =0; i < [keys count]; i++) {

        NSString *key = [NSStringstringWithFormat:@"%@", [keysobjectAtIndex: i]];

        NSString *value = [NSStringstringWithFormat:@"%@", [dictionaryvalueForKey: [keys objectAtIndex: i]]];

        

        NSString *encodedKey = [selfescapeString:key];

        NSString *encodedValue = [selfescapeString:value];

        

        NSString *kvPair = [NSStringstringWithFormat:@"%@=%@", encodedKey, encodedValue];

        if(i >0) {

            [resultString appendString:@"&"];

        }

        [resultString appendString:kvPair];

    }

    return resultString;

}

//对key和Value的数据进行 编码处理

- (NSString *)escapeString:(NSString *)string {

    if(string ==nil || [string isEqualToString:@""]) {

        return@"";

    }

    NSString *outString = [NSStringstringWithString:string];

    outString = [outString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    

    // BUG IN stringByAddingPercentEscapesUsingEncoding

    // WE NEED TO DO several OURSELVES

    outString = [selfreplace:outString lookFor:@"&"replaceWith:@"%26"];

    outString = [selfreplace:outString lookFor:@"?"replaceWith:@"%3F"];

    outString = [selfreplace:outString lookFor:@"="replaceWith:@"%3D"];

    outString = [selfreplace:outString lookFor:@"+"replaceWith:@"%2B"];

    outString = [selfreplace:outString lookFor:@";"replaceWith:@"%3B"];

    

    return outString;

}


//去掉空格和特殊字符

- (NSString *)replace:(NSString *)originalString lookFor:(NSString *)find replaceWith:(NSString *)replaceWith {

    if ( ! originalString || ! find) {

        return originalString;

    }

    

    if( ! replaceWith) {

        replaceWith = @"";

    }

    

    NSMutableString *mstring = [NSMutableStringstringWithString:originalString];

    NSRange wholeShebang =NSMakeRange(0, [originalStringlength]);

    

    [mstring replaceOccurrencesOfString: find

                             withString: replaceWith

                                options:0

                                  range: wholeShebang];

    

    return [NSStringstringWithString: mstring];

}







0 0