在CN1中使用RESTAPI上传到Cloudinary
我正在尝试使用RESTAPI将我的图片上传到Cloudinary。来自CN1的Cloudinary库对我来说运行得非常好,但我希望能够控制一些事情,比如静默失败,以及能够添加到队列和添加到队列和等待 这是我的代码,我使用相机拍摄了一张照片,然后上传到Cloudinary,但它似乎不起作用:在CN1中使用RESTAPI上传到Cloudinary,rest,codenameone,cloudinary,Rest,Codenameone,Cloudinary,我正在尝试使用RESTAPI将我的图片上传到Cloudinary。来自CN1的Cloudinary库对我来说运行得非常好,但我希望能够控制一些事情,比如静默失败,以及能够添加到队列和添加到队列和等待 这是我的代码,我使用相机拍摄了一张照片,然后上传到Cloudinary,但它似乎不起作用: @Override protected void onMain_ButtonSubirAPIAction(Component c, ActionEvent event) { String pictur
@Override
protected void onMain_ButtonSubirAPIAction(Component c, ActionEvent event) {
String picture = Capture.capturePhoto(width, -1);
if(picture!=null){
String cloudinaryURL = "https://api.cloudinary.com/v1_1/"+CLOUDNAME+"/image/upload";
MultipartRequest request = new MultipartRequest() {
protected void readResponse(InputStream input) throws IOException {
JSONParser jp = new JSONParser();
Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8"));
labelX.setText((String)result.get("url"));
}
};
request.setPost(true);
request.setHttpMethod("POST");
String encoded = Base64.encodeNoNewline((APIKEY + ":" + APISECRET).getBytes());
request.addRequestHeader("Authorization", "Basic " + encoded);
request.setUrl(cloudinaryURL);
try {
request.addData("file", picture, "image/jpeg");
request.addArgument("public_id", "name1");
NetworkManager.getInstance().addToQueue(request);
} catch(Exception err) {
}
}
}
@覆盖
主按钮上的受保护的无效事件(组件c,ActionEvent事件){
字符串图片=Capture.capturePhoto(宽度-1);
如果(图片!=null){
字符串cloudinaryURL=”https://api.cloudinary.com/v1_1/“+CLOUDNAME+”/image/upload”;
MultipartRequest=新的MultipartRequest(){
受保护的void readResponse(InputStream输入)引发IOException{
JSONParser jp=新的JSONParser();
Map result=jp.parseJSON(新的InputStreamReader(输入,“UTF-8”));
labelX.setText((String)result.get(“url”);
}
};
request.setPost(true);
请求。设置HttpMethod(“POST”);
字符串encoded=Base64.encodeNoNewline((APIKEY+“:“+APISECRET).getBytes());
addRequestHeader(“授权”、“基本”+编码);
setUrl(cloudinaryURL);
试一试{
添加数据(“文件”、图片、“图像/jpeg”);
request.addArgument(“public_id”,“name1”);
NetworkManager.getInstance().addToQueue(请求);
}捕获(异常错误){
}
}
}
我一直在尝试修改API文档页面中指示的参数:
谢谢
编辑:
以下是语法:
符号“@”用于浏览器,不应用于请求。您需要使用基本身份验证:
String encoded = Base64.encodeNoNewline((APIKEY + ":" + APISECRET).getBytes());
request.addRequestHeader("Authorization", "Basic " + encoded);
您需要在代码中进行一些更改。 请看
api_key
和api_secret
不应像您那样添加为APIKEY+:“+apissecret
。此语法仅在使用管理API时使用,而不在上载API时使用
根据请求参数:
- 您应该将
参数设置包括在api\u键中api\u键
- 您应该将
参数设置为当前时间时间戳
- 此
,以及时间戳
和您的公共id
。这应该是api\u机密
参数的值签名