小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在本地请求可以请求通过获取预付单id,服务器上获取的参数通过postman请求可以成功获取预付单id,但是服务器上请求一直不行。请问一下是什么原因
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,现在我也遇到类似的问题,请问怎么处理的
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
401是服务器端验签失败,即Authorization的签名值不对;另外401的时候,其实服务端是有返回jsonstring的,建议调试时把responseBody打印出来,应该可以佐证Authorization不对的提示信息。
public String post(String url, String data, String authorization) { StringBuilder sb = new StringBuilder(); try { URL _url = new URL(url); if (url.toLowerCase().contains("https://")) { HttpsHandler httpsH = new HttpsHandler(); httpsH.trustAllHttpsCertificates(); HostnameVerifier hv = new HostnameVerifier() { @Override public boolean verify(String urlHostName, SSLSession session) { return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(hv); HttpsURLConnection sconn = (HttpsURLConnection) _url .openConnection(); sconn.setRequestMethod("POST"); sconn.setDoInput(true); sconn.setDoOutput(true); //application/x-www-form-urlencoded application/json sconn.setRequestProperty("Content-Type", "application/json"); sconn.setRequestProperty("Accept", "application/json"); sconn.setRequestProperty("Authorization", authorization); //往服务器端写内容 if(null!=data){ OutputStream os=sconn.getOutputStream(); os.write(data.getBytes()); os.close(); } //读取服务器端返回的内容 InputStream is=sconn.getInputStream(); InputStreamReader isr=new InputStreamReader(is,"utf-8"); BufferedReader br=new BufferedReader(isr); String line=null; while((line=br.readLine())!=null){ sb.append(line); } } } catch (Exception e) { e.printStackTrace(); } return sb.toString(); }
80 行报错调用的方法
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,现在我也遇到类似的问题,请问怎么处理的
401是服务器端验签失败,即Authorization的签名值不对;另外401的时候,其实服务端是有返回jsonstring的,建议调试时把responseBody打印出来,应该可以佐证Authorization不对的提示信息。
public String post(String url, String data, String authorization) { StringBuilder sb = new StringBuilder(); try { URL _url = new URL(url); if (url.toLowerCase().contains("https://")) { HttpsHandler httpsH = new HttpsHandler(); httpsH.trustAllHttpsCertificates(); HostnameVerifier hv = new HostnameVerifier() { @Override public boolean verify(String urlHostName, SSLSession session) { return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(hv); HttpsURLConnection sconn = (HttpsURLConnection) _url .openConnection(); sconn.setRequestMethod("POST"); sconn.setDoInput(true); sconn.setDoOutput(true); //application/x-www-form-urlencoded application/json sconn.setRequestProperty("Content-Type", "application/json"); sconn.setRequestProperty("Accept", "application/json"); sconn.setRequestProperty("Authorization", authorization); //往服务器端写内容 if(null!=data){ OutputStream os=sconn.getOutputStream(); os.write(data.getBytes()); os.close(); } //读取服务器端返回的内容 InputStream is=sconn.getInputStream(); InputStreamReader isr=new InputStreamReader(is,"utf-8"); BufferedReader br=new BufferedReader(isr); String line=null; while((line=br.readLine())!=null){ sb.append(line); } } } catch (Exception e) { e.printStackTrace(); } return sb.toString(); }
80 行报错调用的方法