curl与HttpURLConnection

来源:互联网 发布:剧情java游戏 编辑:程序博客网 时间:2024/06/05 02:11

在项目的过程中,需要用到短信服务,一开始使用网易云信提供的短信接口,所以在网上找了一份demo就可以实现功能。但是网易云信主要针对的是公司,对于个人开发者来说,一次性没有那么多的需求,所以就不得不临时换了一个短信接口服务商。
这时候就在同学的途径中了解到了bmob比目云服务。但是有一个问题,就是bmob并没有提供java的demo,所以自己在官方提供的RestfulDemo基础上进行了拓展,使得java可以通过httpURLConnection来完成短信接口的请求。

官方提供的demo

curl -X POST \  -H "X-Bmob-Application-Id: Your Application ID"          \  -H "X-Bmob-REST-API-Key: Your REST API Key"        \  -H "Content-Type: application/json" \  -d '{"mobilePhoneNumber": "186xxxxxxxx", "content":"您的验证码是:222222, 有效期是10分钟。"}' \  https://api.bmob.cn/1/requestSms

由于curl是linux中url语法在命令行方式下工作的传输工具,所以为了将curl里涉及到的内容转化为java中的内容,就需要用到java中的HttpURLConnection接口。具体内容如下:

String param = "{\"mobilePhoneNumber\":\""+phone+"\",\"content\":\""+content+"\"}";try{      String url ="https://api.bmob.cn/1/requestSms";      URL realUrl = new URL(url);      System.out.println(url);      HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();      conn.setDoOutput(true);      conn.setRequestProperty("X-Bmob-Application-Id", ApplicationId);      conn.setRequestProperty("X-Bmob-REST-API-Key", key);      conn.setRequestProperty("Content-Type", "application/json");      conn.setRequestMethod("POST");      conn.connect();      OutputStream  out = conn.getOutputStream();      out.write((param).getBytes("UTF-8"));      out.flush();      out.close();      if (conn.getResponseCode() == 200) {            System.out.println("发送成功");      } }catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();}

有关的内容在以下的论坛中提及,但是里面json传输的内容有错StackOverflow

0 0
原创粉丝点击