2018-12-03 14:32题主

serverScript中,如何发送http请求

var connection = java.net.HttpURLConnection;
var is = java.io.InputStream;
var br = java.io.BufferedReader;
var result = null; // 返回结果字符串
var httpurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=https://www.123.com/m?xwl=Teacher/testData&response_type=code&scope=snsapi_userinfo&state=77622#wechat_redirect";
try {
  // 创建远程url连接对象
  var url = new java.net.URL(httpurl);
  // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
  connection = url.openConnection();
  // 设置连接方式:get
  connection.setRequestMethod("GET");
  // 设置连接主机服务器的超时时间:15000毫秒
  connection.setConnectTimeout(15000);
  // 设置读取远程返回的数据时间:60000毫秒
  connection.setReadTimeout(60000);
  // 发送请求
  connection.connect();
  // 通过connection连接,获取输入流
  if (connection.getResponseCode() == 200) {
    is = connection.getInputStream();
    // 封装输入流is,并指定字符集
    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    // 存放数据
    var sbf = new StringBuffer();
    var temp = null;
    while ((temp = br.readLine()) != null) {
      sbf.append(temp);
      sbf.append("\r\n");
    }
    result = sbf.toString();
    app.log(result);
  }
} catch (e) {
  throw e;
} finally {
  // 关闭资源
  //   if (null != br) {
  //     try {
  //       br.close();
  //     } catch (e) {
  //       throw e;
  //     }
  //   }
  //   if (null != is) {
  //     try {
  //       is.close();
  //     } catch (e) {
  //       throw e;
  //     }
  //   }
}
connection.disconnect(); // 关闭远程连接
app.log(result);

代码如上,运行报错 br.close() 不是一个function
2018-12-03 14:39#1
下面finally的代码让我注释了 发帖的时候忘记解开了 大神就当下面finally中的内容会照常执行就好 关闭资源的时候就提示 br.close()不是一个function
2018-12-03 14:57#2
​写法问题 已经解决 如下

var data = app.get();
var connection = null;
var is = null;
var br = null;
var result = null; // 返回结果字符串
var httpurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=https://123123.com/lfs2/m?xwl=Teacher/testData&response_type=code&scope=snsapi_userinfo&state=9983#wechat_redirect";
try {
  // 创建远程url连接对象
  var url = new java.net.URL(httpurl);
  // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
  connection = url.openConnection();
  // 设置连接方式:get
  connection.setRequestMethod("GET");
  // 设置连接主机服务器的超时时间:15000毫秒
  connection.setConnectTimeout(15000);
  // 设置读取远程返回的数据时间:60000毫秒
  connection.setReadTimeout(60000);
  // 发送请求
  connection.connect();
  // 通过connection连接,获取输入流
  if (connection.getResponseCode() == 200) {
    is = connection.getInputStream();
    // 封装输入流is,并指定字符集
    br = new java.io.BufferedReader(new java.io.InputStreamReader(is, "UTF-8"));
    // 存放数据
    var sbf = new java.lang.StringBuffer();
    var temp = null;
    while ((temp = br.readLine()) != null) {
      sbf.append(temp);
      sbf.append("\r\n");
    }
    result = sbf.toString();
    app.log(result);
  }
} catch (e) {
  throw e;
} finally {
  //关闭资源
  if (null != br) {
    try {
      br.close();
    } catch (e) {
      throw e;
    }
  }
  if (null != is) {
    try {
      is.close();
    } catch (e) {
      throw e;
    }
  }
}
connection.disconnect(); // 关闭远程连接
app.log(result);

返回开发者社区