通过.net错误请求上传ASIFormDataRequest图像

时间:2013-01-17 09:54:51

标签: iphone .net ios web-services asiformdatarequest

我一直在试图让我的应用程序将图像数据作为基础64发送到.net网络服务,然后将其转换回图像并将其保存在服务器上。

这适用于一个小的10px x 10px图像,但对于其他任何东西,我从服务器得到一个错误的请求响应。这是我的代码。我正在以xml的形式进行操作,因为我无法使postValue工作。

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[reqstring setString:@"<Files xmlns=\"http://schemas.datacontract.org/2004/07/FileUpload\">"];
[reqstring appendString:@"<filename>"];
[reqstring appendString:@"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI"];
[reqstring appendString:@"</filename></Files>"];

[request appendPostData:[reqstring dataUsingEncoding:NSUTF8StringEncoding]];

[request setValidatesSecureCertificate:NO];
[request addRequestHeader:@"Content-Type" value:@"text/xml"];

[request setDelegate:self];

[request setDidFinishSelector:@selector(requestUploadFinished:)];
[request setDidFailSelector:@selector(requestUploadFailed:)];
[request startSynchronous];

可以通过这种方式发送的内容或服务器上需要更改的内容是否有限制?

关于此类事情的任何好的教程?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

最后成功解决了这个问题。请求中已达到xml限制。

我的web.config需要在服务器上进行更正。我将绑定类型设置为webHttpBinding并添加了readerQuotas来解决它。

<readerQuotas maxDepth="3200" maxStringContentLength="2147483647" maxArrayLength="16384"
    maxBytesPerRead="4096" maxNameTableCharCount="16384" />

在服务上使用跟踪有很大帮助。

<system.diagnostics>
  <sources>
        <source name="System.ServiceModel" 
                switchValue="Information, ActivityTracing"
                propagateActivity="true">
          <listeners>
           <add name="traceListener" 
               type="System.Diagnostics.XmlWriterTraceListener" 
               initializeData= "C:\Traces.svclog" />
          </listeners>
       </source>
  </sources>