Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iOS Swift上传图像_Ios_Rest_Swift_Upload_Jersey - Fatal编程技术网

使用iOS Swift上传图像

使用iOS Swift上传图像,ios,rest,swift,upload,jersey,Ios,Rest,Swift,Upload,Jersey,我正在尝试将图像上载到我的jersey服务器。这是我的Swift代码: var url:NSURL = NSURL.URLWithString("http://www.quentinroussat.fr/assets/img/iOS%20icon's%20Style/ios8.png") var payload:NSData = NSData.dataWithContentsOfURL(url, options: nil, error: nil) var err: NSErr

我正在尝试将图像上载到我的jersey服务器。这是我的Swift代码:

var url:NSURL = NSURL.URLWithString("http://www.quentinroussat.fr/assets/img/iOS%20icon's%20Style/ios8.png")
    var payload:NSData = NSData.dataWithContentsOfURL(url, options: nil, error: nil)


    var err: NSError?
    var imageData :NSData = NSData.dataWithContentsOfURL(url,options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)


    let endpoint: NSURL = NSURL(string: "http://localhost:8080/rest/service/Upload")
    let request = NSMutableURLRequest(URL: endpoint)
    request.HTTPMethod = "POST"


    // set Content-Type in HTTP header
    let boundaryConstant = "----------V2ymHFg03esomerandomstuffhbqgZCaKO6jy";
    let contentType = "multipart/form-data; boundary=" + boundaryConstant
    request.HTTPBody = imageData

     request.addValue(contentType, forHTTPHeaderField: "Content-Type")
     request.addValue("multipart/form-data", forHTTPHeaderField: "Accept")


    var response: NSURLResponse? = nil
    var error: NSError? = nil

    let task = NSURLSession.sharedSession().uploadTaskWithRequest(request, fromData: imageData, completionHandler: {data, response, error -> Void in

         println(request)
         println(response)
        // println(payload)

    })
    task.resume()
这是我的球衣服务:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/Upload")
public Response fileUpload(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileInfo)
        throws IOException
{
     final String FILE_UPLOAD_PATH = "/Users/Luke/Documents/Temp/Uploads";


    Response.Status respStatus = Response.Status.OK;

    if (fileInfo == null)
    {
        respStatus = Response.Status.INTERNAL_SERVER_ERROR;
    }
    else
    {
        final String fileName = fileInfo.getFileName();
        String uploadedFileLocation = FILE_UPLOAD_PATH + File.separator
                + fileName;

        try
        {
            saveToDisc(uploadedInputStream, uploadedFileLocation);
        }
        catch (Exception e)
        {
            respStatus = Response.Status.INTERNAL_SERVER_ERROR;
            e.printStackTrace();
        }
    }

    return Response.status(respStatus).build();
}
我知道这项服务可以通过标准的html页面上传,但是,通过模拟器,没有任何东西可以到达其余的端点。我对斯威夫特显然是个新手,所以任何指点都将不胜感激

以下是来自模拟器的请求/响应:

    <NSMutableURLRequest: 0x79674830> { URL: http://localhost:8080/rest/service/Upload, headers: {
Accept = "multipart/form-data";
"Content-Type" = "multipart/form-data; boundary=----------V2ymHFg03esomerandomstuffhbqgZCaKO6jy";
{URL:http://localhost:8080/rest/service/Upload,标题:{
Accept=“多部分/表单数据”;
“内容类型”=“多部分/表单数据;边界=------------V2ymHFg03esomerandomstuffhbqgZCaKO6jy”;
}}

{URL:http://localhost:8080/rest/service/Upload }{状态代码:406,标题{
“内容长度”=0;
日期=“2014年9月28日星期日07:20:25 GMT”;
Server=“apachecoyote/1.1”;

}}

如何修复它?
<NSHTTPURLResponse: 0x7871efa0> { URL: http://localhost:8080/rest/service/Upload } { status code: 406, headers {
"Content-Length" = 0;
Date = "Sun, 28 Sep 2014 07:20:25 GMT";
Server = "Apache-Coyote/1.1";