###序文
スタンドアロンの拡張を行うには、プリンタの準備ができて(霧)をバックアップするがクークー前に妹からマシンを購入する前にいくつかの時間は、公式によると、多くのユーザーは、私の小さなを送信することを可能にするものにそれを拡張するためのインタフェースを提供しますオンラインプリンタ用紙。
インタフェースの朝使用した後は友人のグループに送信され、その後、今日の私は、コンテンツを受信しました...
憲法の###
三回Alipayのアカウントを送っ###
###神秘的なリンク
###は、ゲームをプレイするために私に言った(私自身の髪)
###のコードは、1日のノックも非常に疲れています
それはのように暖かいジュニア密かに机の中のメモを渡すように感じています。
しかし!
印刷構成は、実際に紙の無駄です、感熱紙の毎分ロールは、感熱紙は安いですが、なくなっているが、憲法を下に長いか、難しいです。
したがって、そのような学生は、三字経や物事のために、私は...何もしなかった、ちょうどPOSTリクエストインターフェースはGETリクエストによって置き換えられ、憲法、教科書、周期表を印刷するから人々を防ぐためです。だから、ブラウザが自動的に渡すように私には長すぎるGETリクエストを助けることができます!古い場合を除き、要求をfidderこのツールを使用して、ブラウザなし6。
長解決を投稿する前に、そこに私は連絡先の名前を提供するか、またはボックスを残すものの、匿名の送信についての質問は、ですが、これは必須ではありませんので、Weibo / QQやその他の第三者にログオンへのアクセスがありませんまた、一時的ではないベータ版。
興味国民が直接検査を受けるために[いいえ] GUGUアドレスを返信することができますが、文....添えものに従事していません。
あなたがいる場合グーグー・マシン・インターフェースの開発に興味を持っ、あなたは以下のコンテンツを閲覧し続けることができます!
###インタフェースの開発ドキュメント
あなたがしたい場合はグーグー・マシン・インターフェースの開発を、あなたはAK彼らの公式ウェブサイトの開発者に適用する必要があります。
アプリケーションが使用する公式APIによってカプセル化することができた後に、主に使用されるAPIは、二つがあります。これは、バインディング要求、印刷要求です。
1)バインディング要求/ setuserbind
我们需要发送ak,memobirdID(设备号),useridentifying(用户Id)。之后会返回与服务器关联的userId。我们需要使用这个userId来进行打印。
用fidder请求如下:
为了用代码实现,我们先封装一个Http请求发起的方法。
1 private static String sendRequest(String url) { 2 URL u ; 3 HttpURLConnection httpURLConnection ; 4 BufferedReader bf ; 5 String response = "" ; 6 String readLine ; 7 try{ 8 u = new URL(url) ; 9 httpURLConnection = (HttpURLConnection)u.openConnection() ; 10 int responsecode = httpURLConnection.getResponseCode() ; // 返回码 11 if(responsecode==200) { 12 bf = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), "UTF-8")); 13 while ((readLine = bf.readLine()) != null) { 14 response += readLine += "\r\n"; 15 } 16 }else{ 17 System.out.println("NOT "+responsecode); 18 } 19 }catch(Exception e){ 20 System.out.println("Exception->"+e); 21 } 22 return response ; 23 } 24
这个方法最后返回请求体。
当我们绑定用户时,只需要调用这个方法。
1 public static String setUserBind(){ 2 String url = BASE_URL + "/setuserbind?ak=" + ak + "×tamp=2019-08-31%14:22:39&memobirdID=" + memobirdID + "&useridentifying=" + useridentifying; 3 return sendRequest(url) ; 4 }
2)打印请求 printpaper
这个请求需要的参数是ak,memobirdID(设备号),需要打印的内容,还有第一步绑定时返回的userId。
1 public static String printPaper(String content,String userId,String time) { 2 String url = BASE_URL + "/printpaper?ak=" + ak + "×tamp="+time+"&printcontent=T:" + content + "&memobirdID=" + memobirdID + "&userId=" + userId ; 3 return sendRequest(url); 4 }
fidder请求如下,printcontentid为本次打印的id编号。
这样就成功了!
至于是否已经打印的接口,可以去咕咕机开发者文档中自行查看学习。
### 发送内容编码
有一个问题是,发送打印的数据需要在GBK编码的基础上进行base64加密,所以我们自己封装还要有加密过程。
1 public static String toBase64(String str){ 2 try{ 3 byte[] encodeBase64 = Base64.encodeBase64(str.getBytes("GBK")); 4 return new String(encodeBase64); 5 } catch(UnsupportedEncodingException e){ 6 e.printStackTrace(); 7 } 8 return ""; 9 }
完成了这些关键的封装,我们只需要再搭建一个简单的页面,就可以了,使用最简单的servlet+jsp就可以了,用一个表单把内容发送到后台,然后调用后台来调用接口完成打印。
1 <form class="center-block" action="send" method="get"> 2 Name: 3 <input type="text" class="form-control" placeholder="您的姓名或联系方式" name="name"> 4 <br> 5 Content: 6 <textarea class="form-control" rows="6" placeholder="需要发送的内容" name="content"></textarea> 7 <br><br> 8 <input type="submit" style="margin: 0px auto;display: table;" class="btn btn-primary btn-lg btn-block" value="Submit"> 9 </form>