discuz5

 找回密码

QQ登录

只需一步,快速开始

查看: 1240|回复: 0

DZ论坛发帖带图

[复制链接]

71

主题

72

帖子

399

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
399
发表于 2017-3-30 20:08:16 | 显示全部楼层 |阅读模式
经过几天的摸索,终于攻下安卓客户端DZ论坛的发帖功能,整个过程可谓比较曲折。应该注意一下几点:
1、发帖带图的抓包状况是如图:
必须严格遵循下面的接口要求来实现:


  1. String picMessage1 = "[attachimg]";
  2.                         String picMessage2 = "[/attachimg]";
  3.                         for(int s :aids){
  4.                             String d = picMessage1+s+picMessage2;
  5.                             picMessage = picMessage + d;
  6.                         }
  7.                         picMessage = desp+picMessage;
复制代码



  1.   Map<String, String> hashMap = new HashMap<String, String>();
  2.         hashMap.put("fid",String.valueOf(fid));
  3.         hashMap.put("subject",subject);
  4.         hashMap.put("message", message);
  5.         for(int s :aids){
  6.             String picAttach1 = "attachnew[";
  7.             String picAttach2  = "]";
  8.             String pic  = picAttach1 + s + picAttach2;
  9.             hashMap.put(pic,"");
  10.         }
  11.         hashMap.put("token", token);

  12.         Call<UserData> stringCall = apiManager.postThread(hashMap);
复制代码
2、安卓的带token验证的post请求弄了很久,@Multipart方式  正确的方式,对于上传图片(文件)multipart/form-data 方式,如果构造成普通的post字段上传,token上的Java string字符串会带有“”,造成验证失败。所以要采用拦截器的方式:
  1. public class ServiceGenerator implements Interceptor {
  2.     private String token;
  3.     public ServiceGenerator(String token){
  4.         this.token = token;
  5.     }
  6.     @Override
  7.     public Response intercept(Chain chain) throws IOException {
  8.         Request request = chain.request();
  9.         HttpUrl httpUrl = request.url().newBuilder()
  10.                 .addQueryParameter("token",token)
  11.                 .build();
  12.         request = request.newBuilder().url(httpUrl).build();
  13.         return chain.proceed(request);
  14.     }



  15. }
复制代码

3,discuz论坛的发帖和上传附件比较复杂,接口比较难以实现。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
15071753751 18642190905
业务QQ:4767960 微信:k0421001
邮箱:4767960@qq.com 总监微信:qq4767960

快速回复 返回顶部 返回列表