老师, 扫描后出现scope不能为空
来源:16-1 教程总结
qq_神秘小屋_0
2018-04-05
我短地址util代码用的是 https://coding.imooc.com/learn/questiondetail/41803.html 中的代码,生成的短地址是http://suo.im/2OpBkn,现在扫描后一直是scope不能为空 错误码 10010
6回答
-
同学好,我测试了一下,确实有同样的问题,百度的短网址估计目前又维护了,因为我直接登录http://dwz.cn/发现也转化不了,而目前我用
package com.imooc.o2o.util; import java.io.IOException; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class ShortNetAddressUtil { public static String getShortURL(String longUrl) { try { String result = callHttp("http://suo.im/api.php?format=json&url=" + longUrl); JSONObject jsonResult = JSON.parseObject(result); return jsonResult.getString("url"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } private static String callHttp(String requestUrl) throws IOException { OkHttpClient httpClient = new OkHttpClient(); // 创建OkHttpClient对象 Request request = new Request.Builder().url(requestUrl)// 请求接口。如果需要传参拼接到接口后面。 .build();// 创建Request 对象 Response response = null; response = httpClient.newCall(request).execute();// 得到Response 对象 return response.body().string(); } /** * 百度短链接接口 * * @param args */ public static void main(String[] args) { System.out.println(getShortURL("https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login")); } }
转换是没有问题的,不好定位同学的这个问题是啥,这几天在外出差,同学可以试试上面就是之前给过的解决方案,调试一下,如果还有问题,先调研一下网上还有什么好用的短网址解决方案,如果找到可以分享出来:)等翔仔这几天外出回来或者百度服务恢复了再解决也可以:)
012018-04-06 -
qq_神秘小屋_0
提问者
2018-04-06
老师,我用新浪短链接成功了,现在可以进去微信,但是出现了错误代码40163 code been used ,我先用店家登录后台商店管理界面,再用用户登录前台管理界面,程序中根据code 回调AccessToken 问题出在那里
这是新浪短链接
package com.imooc.o2o.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class ShortNetAddressUtil{
static String actionUrl = "http://api.t.sina.com.cn/short_url/shorten.json";
static String APPKEY = "2815391962,31641035,3271760578,3925598208";
public static void main(String[] args) {
String longUrl = "https://www.baidu.com";
System.out.println(getShortURL(longUrl));
}
public static String getShortURL(String longUrl){
longUrl = java.net.URLEncoder.encode(longUrl);
String appkey = APPKEY;
String[] sourceArray = appkey.split(",");
for(String key:sourceArray){
String shortUrl = sinaShortUrl(key,longUrl);
if(shortUrl != null){
return shortUrl;
}
}
return null;
}
public static String sinaShortUrl(String source, String longUrl){
String result = sendPost(actionUrl, "url_long="+longUrl+"&source="+source);
if(result==null || "".equals(result)){
return "";
}
JSONArray jsonArr = JSON.parseArray(result);
JSONObject json = JSON.parseObject(jsonArr.get(0).toString());
String ret = json.get("url_short").toString();
return ret;
}
/**
* 向指定 URL 发送POST方法的请求
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
}
112018-05-11 -
翔仔
2018-04-06
大赞同学解决问题的能力,如果申请了域名就不会弹警告窗口了,同学也可以找认识的有域名的朋友给你解析一个二级域名。此外,新浪那个方案大赞,非常感谢同学的分享,日后必成大器!
00 -
qq_神秘小屋_0
提问者
2018-04-06
问题解决了 扫描二维码后跳出警告不要点继续访问 点下面的访问原网页 就能避免再次获取code
00 -
qq_神秘小屋_0
提问者
2018-04-05
老师 使用百度短地址会出现 response string :{"status":-1;"err_msg":"","longurl":""}
就会出错
00 -
翔仔
2018-04-05
同学好,请用回百度短地址 那个稳定一些 suo听说又不太稳定了
00
相似问题