MobileFirst适配器调用因-unsupported媒体类型错误

时间:2017-11-21 14:30:43

标签: ibm-mobilefirst ibm-cloud swagger mobilefirst-adapters

我们让mobilefirst适配器在swagger工具中正常工作,但是当我们尝试从客户端调用时,它给出了不支持的媒体类型的错误代码 - 错误代码415.Environment mobilefirst 8.0 with ibm cloud object storage。

server side java adapter code below like that,
    -----------------------------------------
    @POST
    @Path("/uploadImageToObjectStorage")
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @OAuthSecurity(enabled = false)
    public String uploadImage(@QueryParam(value="imageName") String imageNameWithExtn, @QueryParam(value="imageMimeType") String imageMimeType, @FormParam(value="imageDataInBase64Str") String imageBase64String){

    /// do to


    }

    cordova ionic 2 calling adapter or invoke adapter like that,
    -------------------------------------------------------------
    var resourceRequest = new WLResourceRequest("/adapters/Test/TestAdp/upload",WLResourceRequest.POST);
     resourceRequest.send().then((response) => {
        resourceRequest.setQueryParameter("imageName", 'store');
        resourceRequest.setQueryParameter("imageMimeType",'image/png'); 
        resourceRequest.setQueryParameter("imageDataInBase64Str",this.imageDataInBase64Str);  
        },
    function(error){
        console.log(error);
    });
  

{“status”:415,“statusText”:“不支持的媒体   类型 “ ”responseText的“: ”“, ”responseHeaders响应“:{ ”连接“: ”保持活动“, ”内容语言“: ”EN-US“, ”日期“:” 星期二,   2017年11月21日14:09:31   GMT “ ”传输编码“: ”分块“, ”X-背侧运输“:” FAIL   FAIL “ ”X-全球事务id“: ”4266505935“, ”X-通电经“: ”的Servlet / 3.1“}, ”ERRORMSG“:” 不支持   媒体类型“,”errorCode“:”415“}

3 个答案:

答案 0 :(得分:0)

您应该将resourceRequest的Content-Type设置为application/ x-www-form-urlencoded

答案 1 :(得分:0)

在代码中添加此行

resourceRequest.setHeader('Content-Type','application / x-www-form urlencoded');

答案 2 :(得分:0)

我当时正在使用IBM Work light来实现设备令牌适配器,但出现了相同的错误:

  

不受支持的媒体(45)类型错误

当我使用这个时:

request?.setHeaderValue("application/json" as NSObject, forName: "Content-Type") 

解决了我的问题,尝试这个。