Публикация данных на странице aspx из приложения iphone - PullRequest
0 голосов
/ 01 мая 2010

Я занимаюсь разработкой приложения. В котором я отправляю изображение на страницу .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>

Теперь я отправляю запрос из своего приложения, затем получаю сообщение «Ошибка Domain = kCFErrorDomainCFNetwork Code = 303 UserInfo = 0xf541c0» Операция не может быть завершена. (kCFErrorDomainCFNetwork ошибка 303.) ""

Я пытался использовать SynchronousRequest и aSynchronousRequest, но оба не работают. Я также использовал пример кода Apple.

Вот код приложения для 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 Ответ

2 голосов
/ 01 мая 2010

Как правило, если вы хотите отправлять данные из внешнего источника (кроме aspx, который делает какие-то сумасшедшие вещи), вы намного лучше с простым «обработчиком» (ashx) или ASP.NET MVC. В случае «обработчика» вы можете получить доступ к форме запроса / строке запроса и т. Д. Напрямую. В случае с MVC это в основном должно быть сделано за вас.

aspx не является другом необработанных сообщений.

В конкретном случае kCFErrorDomainCFNetwork предлагает какую-то сетевую ошибку, но вам понадобится трассировка http, чтобы точно ее идентифицировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...