java-me:HttpConnection 无法写入 Instagram API 请求的正文
Posted
技术标签:
【中文标题】java-me:HttpConnection 无法写入 Instagram API 请求的正文【英文标题】:java-me: HttpConnection fails to write to body for Instagram API request 【发布时间】:2013-09-02 16:02:23 【问题描述】:我有一个在 J2ME 上运行的应用程序需要访问 Instagram API。具体来说,我需要发表评论。这是一个 Post 方法。因此,我尝试使用 HttpConnection.setRequestProperty() 将“text”参数添加到请求的正文中,但这似乎不起作用,因为 Instagram 无法识别该参数存在。我认为这种方法无法将参数写入 Http 请求的正文。知道如何在 j2me 中完成这项工作吗?
这是我的代码:
InputStream is = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] response = null;
HttpConnection connection = null;
String url = "";
try
url = "https://api.instagram.com/v1/media/" + mediaId + "/comments?access_token="+InstagramAPIUtil.accessTokenTest;// POST
url = Util.urlEncodeSpaces(url);
System.out.println(url);
connection = (HttpConnection)Connector.open(url,Connector.READ_WRITE);
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("text", comment);
if (connection.getResponseCode() == HttpConnection.HTTP_OK)
is = connection.openInputStream();
if (is != null)
int ch = -1;
while ((ch = is.read()) != -1)
bos.write(ch);
response = bos.toByteArray();
System.out.println("response: "+new String(response));
System.out.println("request: "+connection.getRequestProperty("text"));
return true;
这是我从 Instagram 获得的反馈:
"meta":"error_type":"APIInvalidParametersError","code":400,"error_message":"Missing 'text'"
【问题讨论】:
【参考方案1】:我在HTTP领域没有太多经验,但我认为您需要写入可以从connection
获得的输出流。我看不到您在代码中的何处发送实际数据。
HttpURLConnection c = (HttpURLConnection) new URL("").openConnection();
OutputStream out = c.getOutputStream();
InputStream in = c.getInputStream();
【讨论】:
在此处查看文档:docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/…。当我调用 connection.getResponseCode() 时,它会切换到连接状态。 在您提供的链接中,您应该阅读“使用 POST 和 HttpConnection 的示例”段落。我仍然看不到您的输出流来自哪里。 哦,我明白你现在在说什么了。非常感谢,这正是我需要的!以上是关于java-me:HttpConnection 无法写入 Instagram API 请求的正文的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jetty 9 中将 HTTPConnection 升级为 WebsocketConnection?
在 J2ME 中,如何使用 HttpConnection 设置 Header 信息?