0
我想僅從Google Cloud Endpoints中返回一個簡單的文本塊,它將被客戶端解釋爲文本文件。這可能嗎?是否可以從Google Cloud Endpoints中返回文本/純文本?
我知道這是不可能返回原語,但我可以返回一個HttpServletResponse並自己設置內容?
我想僅從Google Cloud Endpoints中返回一個簡單的文本塊,它將被客戶端解釋爲文本文件。這可能嗎?是否可以從Google Cloud Endpoints中返回文本/純文本?
我知道這是不可能返回原語,但我可以返回一個HttpServletResponse並自己設置內容?
聲明:未經測試,只是一個問題。
Cloud Endpoints使用ProtoRPC作爲基礎傳輸,它將消息編碼爲JSON。你不能改變這種行爲。返回一個文本文件的最簡單的方法是隻定義與文本文件中的一個字符串成員的簡單信息類:
public class TextFile {
private String text;
// getText, setText methods ...
}
那麼你的端點方法將是這個樣子:
@Api(name = "my_api", ...)
public class MyAPI {
@ApiMethod(name = "myapi.returntext", httpMethod = "get)
public TextFile returnText() {
TextFile response = new TextFile;
response.setText(read_text_from_some_source());
return response;
}
}
你會得到來自該方法的瑣碎JSON響應應該是很容易解析的文本數據的:
{ "text": "<contents_of_text_dump>" }
的反應可能有一些額外的領域,如‘類’和‘ETAG’你可以忽略。
當然最簡單的方法,如果你只是想傾倒了一些文字是關於端點忘記乾脆剛剛成立了一個GET處理程序:
public class ReturnText extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
response.getWriter().write(read_text_from_some_source());
}
}
然後可以此映射到任何端點URL你想在你的web.xml中。