当前位置: 首页 > 面试题库 >

如何使用Java使用正确的实体构建http发布请求,而不使用任何库?

桑鸿志
2023-03-14
问题内容

我应该如何建立实体来实现此职位要求?

POST https://picasaweb.google.com/data/feed/api/user/userID/albumid/albumID/photoid/photoID

<entry xmlns='http://www.w3.org/2005/Atom'>
  <content>great photo!</content>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/photos/2007#comment"/>
</entry>

来自:http :
//code.google.com/intl/zh-
TW/apis/picasaweb/docs/2.0/developers_guide_protocol.html#AddComments

有人可以提供示例或任何提示吗?非常感谢。

更新:我在这里添加了我的代码:

        List<Header> headers = new ArrayList<Header>();
    headers.add(new BasicHeader("GData-Version", "2"));
    headers.add(new BasicHeader("Authorization", "GoogleLogin auth=" + mAuthToken));

    EntityTemplate entity = new EntityTemplate(new ContentProducer() {
        public void writeTo(OutputStream ostream) throws IOException {
            Writer writer = new OutputStreamWriter(ostream, "UTF-8");

            writer.write("\r\n");
            writer.write("<entry xmlns='http://www.w3.org/2005/Atom'>");
            writer.write("<content>" + comment + "</content>");
            writer.write("<category scheme=\"http://schemas.google.com/g/2005#kind\"\r\n");
            writer.write("term=\"http://schemas.google.com/photos/2007#comment\"/>");
            writer.write("</entry>\r\n");

            writer.flush();
        }
    });

仍然没有运气。任何想法?


问题答案:

它是使用HttpClient的示例代码。

希望这些信息对您有所帮助。

// yourID
String userID = "";
String albumID = "";
String photoID = "";

HttpPost postRequest = new HttpPost(
    "https://picasaweb.google.com/data/feed/api/user/" + userID
    + "/albumid/" + albumID + "/photoid/" + photoID);

postRequest.addHeader(new BasicHeader("GData-Version", "2.0"));
postRequest.addHeader(new BasicHeader("Authorization",
    "GoogleLogin auth=" + mAuthToken));

String content = 
    "<entry xmlns='http://www.w3.org/2005/Atom'>"
    + "<content>" + comment + "</content>"
    + "<category scheme='http://schemas.google.com/g/2005#kind'"
    + " term='http://schemas.google.com/photos/2007#comment'/>"
    + "</entry>";

try {
    StringEntity entity = new StringEntity(content);
    entity.setContentType(new BasicHeader("Content-Type",
        "application/atom+xml"));
    postRequest.setEntity(entity);

    HttpClient httpclient = new DefaultHttpClient();
    HttpResponse response = httpclient.execute(postRequest);

} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}


 类似资料:
  • 问题内容: 我想使用这些令牌发出基本的HTTP请求:http : //www.w3.org/Protocols/rfc2616/rfc2616-sec5.html 我知道Java通常会为您做到这一点,但是我想专门设置某些令牌。 问题答案: 为什么要重新发明轮子?Apache Http Client 4 符合rfc2616。

  • 问题内容: 我有这样的HTML代码: 我想单击文本为 Home 的链接。由于此Home链接在登录后出现,因此我具有如下代码: 登录之前的部分效果很好。但是最后一行是有问题的 从HTML代码可以看到,它引发了此NoSuchElementException的Home链接。 请问关于我在做什么错的任何指导? 问题答案: 您是否尝试过为此添加隐式等待,以使其等待而不是快速运行。 该调用使浏览器开始轮询,直

  • 问题内容: 我一直在尝试从SO和其他站点上的大量示例中学习,但是我无法弄清楚为什么我一起学习的示例无法正常工作。我正在构建一个小型的概念验证应用程序,该应用程序可以识别语音并将其(文本)作为POST请求发送到node.js服务器。我确认了语音识别功能,并且服务器正在通过常规浏览器访问获得连接,因此我被认为是问题出在应用程序本身。我想念一些小而愚蠢的东西吗?没有引发任何错误,但是服务器从不识别连接。

  • 问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写​​内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul

  • 问题内容: 我需要能够构建go应用程序的不同版本;“调试”版本和普通版本。 这很容易做到;我只是有一个const DEBUG,它控制应用程序的行为,但是每次我需要在构建类型之间进行交换时,都必须编辑配置文件,这很烦人。 我正在阅读有关go build(http://golang.org/pkg/go/build/)和标签的信息,我想也许我可以这样做: config.go: config.debug

  • 问题内容: 在实现代理服务器时,我将HTTP请求作为字符串发送,如下所示: GET http:// localhost:54321 / x HTTP / 1.1 主机:localhost:54321 缓存控制:无缓存 是否有内置的类来解析此请求? 问题答案: 我对这种解析的内置支持一无所知。如果您确实需要这样的解析器,则可以签出以下库: http //hc.apache.org/index.htm