【问题标题】:sending file information with post request to google appengine将带有 post 请求的文件信息发送到 google appengine
【发布时间】:2013-12-05 12:37:02
【问题描述】:

我正在尝试编写一个接收文件的 Google Appengine Post 程序。

我观察到我得到了六个字节的内容长度,这就是客户端 发送。但是,我无法获取内容。当我尝试从 getInputStream 读取 我第一次得到-1。 (我还尝试读取六个字节的 ByteArray,并且 同样,我在缓冲区中什么也没有。)

package guestbook;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.*;
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import java.util.logging.Logger;
public class XStore extends HttpServlet {
  public void doPost (HttpServletRequest req, HttpServletResponse resp) throws
     IOException {
    Logger log = Logger.getLogger(XStore.class.getName());
     String ct;
     ct=req.getContentType();
     resp.setContentType("text/plain");
     String key = req.getParameter("key");
     String value = req.getParameter("value");
     DatastoreService d = DatastoreServiceFactory.getDatastoreService();
     byte [] B;
     InputStream IS = req.getInputStream();
int i,le;
le = req.getContentLength(); 
StringBuffer rB = new StringBuffer();
int rv;
int c;
c = IS.read();
log.info("Srv = " + c ); 

这将返回日志 -1 ... 为简洁起见省略了程序的其余部分 我的显示器还显示 le 是 6。

这里是客户端

import java.net.*;
import java.io.*;
public class client {
public static void main (String a []  ) throws MalformedURLException,java.io.IOException,ProtocolException {
URL u = new URL("http://uthreee.appspot.com/XX?key=a&value=a");
HttpURLConnection H;
H = (HttpURLConnection) u.openConnection();
H.setRequestMethod("POST");
H.setDoOutput(true);
OutputStreamWriter w = new OutputStreamWriter(H.getOutputStream());
w.write("abc");
w.write("def");
w.close();
System.out.println(H.getResponseCode());
}}

请注意,响应代码为 200。 感谢您的任何见解。一个学生和我一起度过了十多个小时 试图找到一种将 XML 文件传输到 Google Appengine 的方法,但是 无法找到读取客户端发送的信息的方法(最终 将是一个 Android 应用程序)。

博士。 Laurence Leff 计算机科学副教授, 西伊利诺伊大学,马科姆 IL 61455 休假

【问题讨论】:

标签: java google-app-engine


【解决方案1】:

对于它的价值,使用包含 的浏览器表单,Apache Commons FileUpload 绝对适用于 AppEngine。在我的情况下,表单似乎需要 enctype="multipart/form-data" 属性,当然还有 method="post"。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 2021-03-12
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2021-01-03
    相关资源
    最近更新 更多