gpt4 book ai didi

Java HttpPost 到 php API

转载 作者:行者123 更新时间:2023-12-01 15:53:36 25 4
gpt4 key购买 nike

我正在尝试使用 Android 上的 java API 将文件上传到网站。

这是我用来发布和获取回复的内容:

    public static HttpResponse upload(String imagePath){
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("www.site.com/api.php");

try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("type", "file"));
nameValuePairs.add(new BasicNameValuePair("image", "@" + imagePath));
nameValuePairs.add(new BasicNameValuePair("thumbsize", "200"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
System.out.println("tryar");
System.out.println(EntityUtils.toString(httppost.getEntity()));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
return response;

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;

}

响应是一个我读过的 xml 文件,该部分似乎可以工作。我得到的回复是“没有上传文件!”。

该网站有一个关于如何从 php curl 调用 api 的示例:

      // post with curl

$ch = curl_init($postURL);

$post['type']='file';
$post['image']='@'.$filename;

// You can set this to either 100,200,300, or 400 to specify the size of the thumbnail
$post['thumbsize']="400";

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 240);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: '));

$result = curl_exec($ch);
curl_close($ch);

return $result;

http://www.glowfoto.com/api_upload.php

我对网络编程的了解非常有限,但这不等于我在java中所做的事情吗?

最佳答案

您必须发布文件,而不仅仅是带有 @ 符号的文件名。 curl 有一个 form emulation定义以 @ 表示文件上传的变量的功能,但这严格来说是一个 cURL 函数。不要期望 Android API 具有相同的行为。

您可以使用FileMultipartEntityThis question有一个很好的示例代码。

关于Java HttpPost 到 php API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com