我收到这个错误代码。
e/camera_classes.callHttpPostTosendFiles:异常消息e java.io.ioException:服务器返回非OK状态:400消息:Bad Request error stream:com.android.okhttp.internal.http.httpTransport$FixedLengThinputStream@42353798at camera_classes.postMultipartEntity.finish(postMultipartEntity.java:161)at camera_classes.callHttpPostTosEntity.java:193)at posttoSendfiles.java:105)在Android.os.asynctask$2.调用(asynctask.java:288),java.util.concurrent.futuretask.run(Futuretask.java:237)在Android.os.asynctask$serialexecutor$1.run(futuretask.java:231)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112)在
错误发生在
public List<String> finish() throws IOException {
List<String> response = new ArrayList<String>();
writer.append(LINE_FEED).flush();
writer.append("--" + boundary + "--").append(LINE_FEED);
writer.close();
// checks server's status code first
int status = httpConn.getResponseCode();
String server_message = httpConn.getResponseMessage();
if (status == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(
httpConn.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
response.add(line);
}
reader.close();
httpConn.disconnect();
} else {
throw new IOException("Server returned non-OK status: " + status + " message: " + server_message + " error stream : " + httpConn.getErrorStream());
}
1)我有兴趣获得关于这里列出的错误代码(400 Bad Request)的更多信息,这样我就可以理解是什么导致了“400 Bad Request”错误。有人能帮忙吗?我尝试了所有可用的公共方法--httpconn.getResponseMessage()
、httpconn.getResponseCode()
和httpconn.getErrorStream()
。
2)com.android.okhttp.internal.http.httptransport$FixedLengThinputStream@42353798是什么意思?这是httpconn.geterrorStream()
的输出。
我正在使用Google Cloud XML Api的上传方法,如下所示。关于您的第二个问题,可能与使用HttpUrlConnection中的setFixedLengthStreamingMode方法有关,就像我在函数中使用的那样,您必须将上传文件的长度:
URL url = new URL("www.urltoupload.com");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("PUT");
httpCon.setRequestProperty("Content-Type", Utils.getMimeType(path));
httpCon.setRequestProperty("Connection", "Keep-Alive");
httpCon.setFixedLengthStreamingMode((int) dest.length());
final DataOutputStream out = new DataOutputStream(httpCon.getOutputStream());
float bytesTotal = fileBeingUploaded.length();
int bytesRead;
byte buf[] = new byte[8192];
BufferedInputStream bufInput = new BufferedInputStream(new FileInputStream(dest));
while ((bytesRead = bufInput.read(buf)) != -1) {
out.write(buf, 0, bytesRead);
out.flush();
}
out.close();
我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版
我正试图用BlobStore上传到GCS。我在生成上传url时设置了GCS bucket名称,并且文件成功上传。 在上传处理程序中,返回正确的文件名。但是文件实际上以不同的文件名保存在GCS bucket中。每次,文件名都是随机散列,如下所示: 它会是这样工作的吗?这是异常吗? 我根据返回的数据将文件名存储到datastore,这是文件名的正确值。但是我无法使用访问该文件,因为该文件以随机散列作为
我有一个firebase帐户,我想以编程方式上传一些照片到firebase存储。为此,我使用了google cloud java storage API。我配置权限和其他权限。我可以成功地创建桶,斑点。然而,当我试图上传一张图片时,要么它的大小为0,要么它无法下载(不生成URL)。下面是我使用的代码; 任何建议都很感激。问候。
谷歌云存储中的文件更改需要多长时间才能传播? 我遇到了一个非常令人沮丧的问题,我改变了一个文件的内容,并通过gsutil重新上传,但是这个改变几个小时后才显示出来。有没有办法强制一个改变的文件立即传播所有内容? 如果我查看谷歌云存储控制台中的文件,它会看到新文件,但如果我点击公共网址,它是旧版本,在某些情况下,是2个版本前的版本。 有没有我没有设置的标题? 编辑: 我尝试了,但它没有帮助,但也许旧
Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。