像看看某件商品(比如:猪肉)是否有货,为何返回405

但是返回结果是这个: {"error":"AssertError","code":"405","data":"-405"}
郁闷啊
配置文件是PHP解析Charles结果自动生成配置信息: 1、PHP
(); Properties properties = new Properties(); File file = new File(fileName); try { InputStream is = new FileInputStream(file); properties.load(is); for (Object key : properties.keySet()) { map.put(key, properties.getProperty((String) key)); } return map; } catch (Exception ex) { System.out.println("Properties配置读取失败!"+fileName); return new HashMap(); }
PHP代码
$string = file_get_contents("raw.txt"); preg_match_all("/([a-zA-Z_0-9])=([^&])/", preg_replace("/\r\ncookie[\s\S]*/", "", $string), $result); $str = '';
for ($i = 0; $i < count($result[1]); $i++) $str .= $result[1][$i] . "=" . $result[2][$i] . PHP_EOL;
$fp = fopen("request.properties", "w"); fwrite($fp, $str);
$header = "cookie" . preg_replace("/[\s\S]cookie/", "", $string); preg_match_all("/([a-zA-Z-]):\s([^\r\n]*)/", $header, $headers); $headerString = '';
for ($i = 0; $i < count($headers[1]); $i++) $headerString .= $headers[1][$i] . "=" . $headers[2][$i] . PHP_EOL;
$fp = fopen("headers.properties", "w"); fwrite($fp, $headerString);
echo "解析成功".PHP_EOL;
UserConfig稍微改了一下
public static Map headers;
public static Map request;
static {
String path = System.getProperty("user.dir") + File.separator + "config/request.properties";
request = Property.getMap(path);
path = System.getProperty("user.dir") + File.separator + "config/headers.properties";
headers = Property.getMap(path);
}
想抓取stock_number这个参数,不知为何老是失败,求高手赐教
{ "code": 0, "msg": "ok", "success": true, "data": { "cate": [{ "id": "stock_no", "name": "缺货商品", "products": [{ "price": "16.4", "name": "黑钻世家冷鲜黑猪后腿精肉片 约150g", "spec": "生态慢养,院士育种,有嘉兴黑猪血统,猪食五谷和紫花苜蓿草;弹嫩不柴,适合家常小炒", "sizes": [], "status": 1, "type": 0, "activity": [], "oid": 49873, "id": "61503f30530ee2c2910da379", "origin_price": "16.4", "vip_price": "15.58", "stock_number": 0, "marketing_tags": [], "is_promotion": 0, "buy_limit": 0,
app_client_id 由4 改为3可以解决405
app_client_id 由4 改为3可以解决405

试了以下,还用了作者的MD5签名算法,好像还是不行
ddmc-app-client-id 这个也改3
ddmc-app-client-id 这个也改3
app-client-id改成3也不行
https://maicai.api.ddxq.mobi/homeApi/categoriesNewDetail 你跑一下这个接口,看一下app_client_id 改为3 能不能显示出商品库存等信息,,我账号是4的话{ "error": "AssertError", "code": "405", "data": "-405" } 如果3 的话就 "data": { "products": [ { "price": "88", "name": "【抗疫保供盲盒】蔬菜组合A (10种)", "spec": "内含土豆|胡萝卜|洋葱|娃娃菜|青甘蓝|姜蒜等10种蔬菜,如有缺货替换等价商品,具体以实际收货为准", "sizes": [], 这样正常的
像这样还是不行,晕啊
HttpRequest httpRequest = HttpUtil.createGet("https://maicai.api.ddxq.mobi/homeApi/categoriesNewDetail");
Map<String,String> headers=UserConfig.headers;
httpRequest.addHeaders(headers);
Map<String, String> request = UserConfig.request;
request.put("app_client_id","3");
httpRequest.formStr(Api.sign(request));
String body = httpRequest.execute().body();
System.out.println(body);
app-client-id和ddmc-app-client-id都改为3对我有用,而且我抓包的时候这两个参数本来就是3
像这样还是不行,晕啊
HttpRequest httpRequest = HttpUtil.createGet("https://maicai.api.ddxq.mobi/homeApi/categoriesNewDetail"); Map<String,String> headers=UserConfig.headers; httpRequest.addHeaders(headers); Map<String, String> request = UserConfig.request; request.put("app_client_id","3"); httpRequest.formStr(Api.sign(request)); String body = httpRequest.execute().body(); System.out.println(body);
你好,我也遇到同样的问题,请问你解决了吗