- 有谁有java调用云开发HTTP api上传文件的代码样例?
我在用java调用云开发HTTPAPI上传文件时,总返回400错误,麻烦大神帮忙看下问题出在哪? import cn.hutool.json.JSONObject; import com.dimon.cloud.commons.rest.ApiResponse; import com.dimon.cloud.customize.feign.WechatApi; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotNull; import java.io.IOException; /** * @Author: He Zhigang * @Date: 2019/10/12 18:00 * @Description: */ @RestController public class BackendController { @Autowired String accessToken; @Autowired WechatApi wechatApi; @PostMapping("/upload/prod/img") public ApiResponse uploadFile(@NotNull MultipartFile file) throws IOException { String dir = "p_cust/prod/img/"; String path = dir + file.getOriginalFilename(); JSONObject reqBody = new JSONObject(); reqBody.put("env", "dev-4cs4fs"); reqBody.put("path", path); JSONObject respJson = wechatApi.uploadFile(accessToken, reqBody); String url = respJson.getStr("url"); // HttpResponse httpResponse = HttpRequest.post(url) // .contentType("multipart/form-data") // .header("Content-Type", "multipart/form-data") // .form("key", path) // .form("Signature", respJson.getStr("authorization")) // .form("x-cos-security-token", respJson.getStr("token")) // .form("x-cos-meta-fileid", respJson.getStr("cos_file_id")) // .form("file", file) // .execute(); HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); httpPost.setHeader("Content-Type", "multipart/form-data"); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody("file", file.getBytes()) .addTextBody("key", path) .addTextBody("Signature", respJson.getStr("authorization")) .addTextBody("x-cos-security-token", respJson.getStr("token")) .addTextBody("x-cos-meta-fileid", respJson.getStr("cos_file_id")); httpPost.setEntity(builder.build()); org.apache.http.HttpResponse res = httpClient.execute(httpPost); return ApiResponse.ok().setBody(res); } } 上面我用了两种不同的HTTP client 都是返回同样的错误。[图片]
2021-02-22 - 小程序客服聊天记录保存多久?
小程序客服聊天记录保存多久? 好像找不到以前的聊天记录了
2018-06-15