gpt4 book ai didi

java - 从 Android 上传图像时,Ruby 服务器上出现 argumenterror in utf-8 错误字节序列

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:02 26 4
gpt4 key购买 nike

用于将照片和一些数据发布到服务器的代码。

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(Constants.STORIES_URL);
httpPost.addHeader("Authorization", "Token token=" + s);

MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("uuid", "1234567890"));
nameValuePairs.add(new BasicNameValuePair("title", "Title"));
nameValuePairs.add(new BasicNameValuePair("subtitle", "Subtitle"));
nameValuePairs.add(new BasicNameValuePair("private", "true"));
nameValuePairs.add(new BasicNameValuePair("photo", Environment.getExternalStorageDirectory() + "/DCIM/0.jpg"));
nameValuePairs.add(new BasicNameValuePair("bytes[uuid]", "1234567890"));
nameValuePairs.add(new BasicNameValuePair("bytes[timelineDate]", "1970-01-01T00:00:00.000+00:00"));
nameValuePairs.add(new BasicNameValuePair("bytes[caption]", "Byte 1"));
nameValuePairs.add(new BasicNameValuePair("bytes[photo]", Environment.getExternalStorageDirectory() + "/DCIM/0.jpg"));

for (NameValuePair nameValuePair : nameValuePairs) {
if (nameValuePair.getName().equalsIgnoreCase("photo") || nameValuePair.getName().equalsIgnoreCase("bytes[photo]")) {
File imgFile = new File(nameValuePair.getValue());
FileBody fileBody = new FileBody(imgFile, "image/jpeg");
multipartEntity.addPart("story[photo]", fileBody);
} else {
multipartEntity.addPart("story[" + nameValuePair.getName() + "]", new StringBody(nameValuePair.getValue()));
}
}

httpPost.setEntity(multipartEntity);
response = httpClient.execute(httpPost);

作为响应,我收到错误 Completed 500 Internal Server Error: "argumenterror invalid byte sequence in utf-8"

如何解决这个错误?

最佳答案

答案是:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(Constants.STORIES_URL);
httpPost.addHeader("Authorization", "Token token=" + s);

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("uuid", "1234567890"));
nameValuePairs.add(new BasicNameValuePair("title", "My Title"));
nameValuePairs.add(new BasicNameValuePair("subtitle", "My Subtitle"));
nameValuePairs.add(new BasicNameValuePair("private", "true"));
nameValuePairs.add(new BasicNameValuePair("photo", Environment.getExternalStorageDirectory() + "/DCIM/0.jpg"));
nameValuePairs.add(new BasicNameValuePair("bytes[uuid]", "1234567890"));
nameValuePairs.add(new BasicNameValuePair("bytes[timelineDate]", "1970-01-01T00:00:00.000+00:00"));
nameValuePairs.add(new BasicNameValuePair("bytes[caption]", "Byte 1"));
nameValuePairs.add(new BasicNameValuePair("bytes[photo]", Environment.getExternalStorageDirectory() + "/DCIM/0.jpg"));

for (NameValuePair nameValuePair : nameValuePairs) {
if (nameValuePair.getName().equalsIgnoreCase("photo") || nameValuePair.getName().equalsIgnoreCase("bytes[photo]")) {
File imgFile = new File(nameValuePair.getValue());
builder.addBinaryBody("story[photo]", imgFile, ContentType.create("image/jpg"), "photo.jpg");
} else {
builder.addTextBody("story[" + nameValuePair.getName() + "]", nameValuePair.getValue());
}
}

HttpEntity build = builder.build();
httpPost.setEntity(build);
response = httpClient.execute(httpPost);
String responseString = new BasicResponseHandler().handleResponse(response);

关于java - 从 Android 上传图像时,Ruby 服务器上出现 argumenterror in utf-8 错误字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com