新浪微博消息推送

521毛毛洛洛 2014-07-22 06:04:35
我想实现发送图片的功能,但是官方API只有三个接口可以调用,一个是纯文本,一个是图文,一个是位置,我只要发送图片就行了,可图文消息是带有文字和图片的,这个怎么解决?有高手吗?
...全文
229 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
521毛毛洛洛 2014-07-29
  • 打赏
  • 举报
回复
我试过了,设其他参数为空,发送图片的显示格式有问题啊,跟普通的分享图片不一样,而且如果发送表情的话,图片会被放大,然后很难看啊,有没有直接发送图片的接口,在线客服找了很多次,留了很多私信,都没回过。。。。
tony4geek 2014-07-29
  • 打赏
  • 举报
回复
我没 做过 新浪 ,你可以 和他们 的技术联系 ,看看api 测试看看。 图文你传图片其它为 null
521毛毛洛洛 2014-07-29
  • 打赏
  • 举报
回复
我说的意思是,要调用新浪微博的接口给相互关注的粉丝发一张图片,仅此而已,没其他的
wqc5461 2014-07-22
  • 打赏
  • 举报
回复
上传文件是支持带参数的。

	public String post(String fileParamName, String fileName, byte[] file,
			Map<String, String> params) throws Exception {
		HttpURLConnection huc = (HttpURLConnection) url.openConnection();
		if (httpURL.startsWith("https")) {
			HttpsURLConnection hucs = (HttpsURLConnection) huc;
			TrustManager[] tm = { new MyX509TrustManager() };
			SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
			sslContext.init(null, tm, new java.security.SecureRandom());
			SSLSocketFactory ssf = sslContext.getSocketFactory();
			hucs.setSSLSocketFactory(ssf);
			HttpsURLConnection.setDefaultSSLSocketFactory(ssf);
			hucs.setHostnameVerifier(new TrustAnyHostnameVerifier());
		}
		huc.setRequestMethod("POST");
		huc.setDoOutput(true);
		huc.setDoInput(true);
		huc.setConnectTimeout(connectTimeout);
		huc.setReadTimeout(readTimeout);

		String boundary = "-----------------------------114975832116442893661388290519";
		huc.setRequestProperty("Content-Type", "multipart/form-data;boundary="
				+ boundary);

		boundary = "--" + boundary;

		StringBuffer sb = new StringBuffer();

		if (params != null) {
			for (Iterator<String> it = params.keySet().iterator(); it.hasNext();) {
				String k = it.next();
				String v = params.get(k);
				sb.append(boundary).append("\r\n");
				sb.append("Content-Disposition: form-data; name=\"" + k
						+ "\"\r\n\r\n");
				sb.append(v).append("\r\n");
			}
		}

		sb.append(boundary).append("\r\n");
		sb.append("Content-Disposition: form-data; name=\"" + fileParamName
				+ "\"; filename=\"" + fileName + "\"\r\n");
		sb.append("Content-Type: " + getContentType(fileName) + " \r\n\r\n");

		huc.connect();

		OutputStream out = huc.getOutputStream();
		out.write(sb.toString().getBytes("UTF-8"));
		out.write(file);
		out.flush();
		out.close();

		String err = checkError(huc);
		if (err != null)
			return err;

		BufferedReader in = new BufferedReader(new InputStreamReader(
				huc.getInputStream(), "ISO8859-1"));
		StringBuffer resp = new StringBuffer();

		String s = in.readLine();
		while (s != null) {
			resp.append(s);
			s = in.readLine();
		}
		in.close();

		return resp.toString();
	}

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧