从iphone应用程序将数据发布到aspx页面

时间:2010-05-01 07:57:04

标签: iphone post asp.net

我正在开发一个应用程序。我在其中将图像发布到.aspx页面。该页面的HTML如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>">
<html xmlns="http://www.w3.org/1999/xhtml>">
<head><title>
Untitled Page
</title><link href="App_Themes/XXX/XXX.css" type="text/css" rel="stylesheet" /></head>
<body>
    <form name="form1" method="post" action="Default16.aspx" id="form1" enctype="multipart/form-data">    
<div>    
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQwMjY2MDA0Mw9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRktr+hG1VVXZsO01PCyj61d6Ulqy8=" />
</div>
<div>
     <div style="float:left;margin:10px">
       <input type="file" name="fuImage" id="fuImage" />
     </div>
     <div style="float:right">
            <input type="submit" name="btnPost" value="Post Image" id="btnPost" />
     </div>
   </div>
    </form>
</body>
</html>

现在我从我的应用程序发送请求然后我收到“错误域= kCFErrorDomainCFNetwork代码= 303 UserInfo = 0xf541c0”操作无法完成。 (kCFErrorDomainCFNetwork错误303。)“”

我尝试过使用SynchronousRequest和aSynchronousRequest,但两者都无法正常工作。我还使用了苹果示例代码。

以下是iPhone应用的代码

UIImage *image=[UIImage imageNamed:@"photo2.jpg"];
NSData *imageData = UIImageJPEGRepresentation(image, 90);
NSString *urlString = @"http://XXXXXXXX.com/Post.aspx";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = [NSString stringWithString:@"----WebKitFormBoundarylU9pAl5wPrF+Tk52"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"fuimage\"; filename=\"asd.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: image/jpeg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
// NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
// NSLog(returnString);
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if( theConnection )
{
webData = [[NSMutableData data] retain];
}
else
{
NSLog(@"theConnection is NULL");
}

1 个答案:

答案 0 :(得分:2)

作为一般规则,如果你想从外部源发布数据(除了aspx,它做了一些疯狂的事情),你可以用一个简单的“处理程序”(ashx)或ASP.NET MVC路径来更好。在“处理程序”的情况下,您可以直接访问请求表单/查询字符串等。在MVC案例中,它应该主要为你完成。

aspx不是原始帖子的朋友。

在特定情况下,kCFErrorDomainCFNetwork 建议某种网络错误,但您需要使用http跟踪来确定它。