亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clickatellhttpgateway.java

?? 發(fā)送短信 接收短信 多種接口com/net/modem 開發(fā)庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// SMSLib for Java v3
// A Java API library for sending and receiving SMS via a GSM modem
// or other supported gateways.
// Web Site: http://www.smslib.org
//
// Copyright (C) 2002-2009, Thanasis Delenikas, Athens/GREECE.
// SMSLib is distributed under the terms of the Apache License version 2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package org.smslib.http;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.smslib.AGateway;
import org.smslib.GatewayException;
import org.smslib.OutboundMessage;
import org.smslib.OutboundWapSIMessage;
import org.smslib.Service;
import org.smslib.TimeoutException;
import org.smslib.Message.MessageEncodings;
import org.smslib.Message.MessageTypes;
import org.smslib.OutboundMessage.FailureCauses;
import org.smslib.OutboundMessage.MessageStatuses;
import org.smslib.OutboundWapSIMessage.WapSISignals;
import org.smslib.StatusReportMessage.DeliveryStatuses;
import org.smslib.scheduler.ASchedulerTask;

/**
 * Gateway for Clickatell bulk operator (http://www.clickatell.com) Outbound
 * only - implements HTTP & HTTPS interface.
 */
public class ClickatellHTTPGateway extends HTTPGateway
{
	String apiId, username, password;

	String sessionId;

	KeepAlive keepAlive;

	boolean secure;

	Object SYNC_Commander;

	String HTTP = "http://";

	String HTTPS = "https://";

	String URL_BALANCE = "api.clickatell.com/http/getbalance";

	String URL_COVERAGE = "api.clickatell.com/utils/routeCoverage.php";

	String URL_QUERYMSG = "api.clickatell.com/http/querymsg";

	String URL_AUTH = "api.clickatell.com/http/auth";

	String URL_PING = "api.clickatell.com/http/ping";

	String URL_SENDMSG = "api.clickatell.com/http/sendmsg";

	String URL_SENDWAPSI = "api.clickatell.com/mms/si_push";

	public ClickatellHTTPGateway(String id, String myApiId, String myUsername, String myPassword)
	{
		super(id);
		this.apiId = myApiId;
		this.username = myUsername;
		this.password = myPassword;
		this.sessionId = null;
		this.secure = false;
		this.SYNC_Commander = new Object();
		setAttributes(AGateway.GatewayAttributes.SEND | AGateway.GatewayAttributes.WAPSI | AGateway.GatewayAttributes.CUSTOMFROM | AGateway.GatewayAttributes.BIGMESSAGES | AGateway.GatewayAttributes.FLASHSMS);
	}

	/**
	 * Sets whether the gateway works in unsecured (HTTP) or secured (HTTPS)
	 * mode. False denotes unsecured.
	 * 
	 * @param mySecure
	 *            True for HTTPS, false for plain HTTP.
	 */
	public void setSecure(boolean mySecure)
	{
		this.secure = mySecure;
	}

	/**
	 * Return the operation mode (HTTP or HTTPS).
	 * 
	 * @return True for HTTPS, false for HTTP.
	 * @see #setSecure(boolean)
	 */
	public boolean getSecure()
	{
		return this.secure;
	}

	@Override
	public void startGateway() throws TimeoutException, GatewayException, IOException, InterruptedException
	{
		getService().getLogger().logInfo("Starting gateway.", null, getGatewayId());
		connect();
		setKeepAlive(new KeepAlive("KeepAlive [" + getGatewayId() + "]", getService()));
		getService().getScheduler().scheduleAtFixedRate(getKeepAlive(), 60, 60, TimeUnit.SECONDS);
		getKeepAlive().enable();
		super.startGateway();
	}

	@Override
	public void stopGateway() throws TimeoutException, GatewayException, IOException, InterruptedException
	{
		getService().getLogger().logInfo("Stopping gateway.", null, getGatewayId());
		getService().getScheduler().remove(getKeepAlive());
		super.stopGateway();
		this.sessionId = null;
	}

	@Override
	public float queryBalance() throws TimeoutException, GatewayException, IOException, InterruptedException
	{
		URL url;
		List<HttpHeader> request = new ArrayList<HttpHeader>();
		List<String> response;
		if (this.sessionId == null) throw new GatewayException("Internal Clickatell Gateway error.");
		url = new URL((this.secure ? this.HTTPS : this.HTTP) + this.URL_BALANCE);
		request.add(new HttpHeader("session_id", this.sessionId, false));
		synchronized (this.SYNC_Commander)
		{
			response = HttpPost(url, request);
		}
		if (response.get(0).indexOf("Credit:") == 0) return Float.parseFloat(response.get(0).substring(response.get(0).indexOf(':') + 1));
		return -1;
	}

	@Override
	public boolean queryCoverage(OutboundMessage msg) throws TimeoutException, GatewayException, IOException, InterruptedException
	{
		URL url;
		List<HttpHeader> request = new ArrayList<HttpHeader>();
		List<String> response;
		if (this.sessionId == null) throw new GatewayException("Internal Clickatell Gateway error.");
		url = new URL((this.secure ? this.HTTPS : this.HTTP) + this.URL_COVERAGE);
		request.add(new HttpHeader("session_id", this.sessionId, false));
		request.add(new HttpHeader("msisdn", msg.getRecipient().substring(1), false));
		synchronized (this.SYNC_Commander)
		{
			response = HttpPost(url, request);
		}
		if (response.get(0).indexOf("OK") == 0) return true;
		return false;
	}

	@Override
	public DeliveryStatuses queryMessage(String refNo) throws TimeoutException, GatewayException, IOException, InterruptedException
	{
		URL url;
		List<HttpHeader> request = new ArrayList<HttpHeader>();
		List<String> response;
		int pos;
		if (this.sessionId == null) throw new GatewayException("Internal Clickatell Gateway error.");
		url = new URL((this.secure ? this.HTTPS : this.HTTP) + this.URL_QUERYMSG);
		request.add(new HttpHeader("session_id", this.sessionId, false));
		request.add(new HttpHeader("apimsgid", refNo, false));
		synchronized (this.SYNC_Commander)
		{
			response = HttpPost(url, request);
		}
		pos = response.get(0).indexOf("Status:");
		setDeliveryErrorCode(Integer.parseInt(response.get(0).substring(pos + 7).trim()));
		switch (getDeliveryErrorCode())
		{
			case 1:
				return DeliveryStatuses.UNKNOWN;
			case 2:
			case 3:
			case 8:
			case 11:
				return DeliveryStatuses.KEEPTRYING;
			case 4:
				return DeliveryStatuses.DELIVERED;
			case 5:
			case 6:
			case 7:
				return DeliveryStatuses.ABORTED;
			case 9:
			case 10:
				return DeliveryStatuses.ABORTED;
			case 12:
				return DeliveryStatuses.ABORTED;
			default:
				return DeliveryStatuses.UNKNOWN;
		}
	}

	void connect() throws GatewayException, IOException
	{
		try
		{
			if (!authenticate()) throw new GatewayException("Cannot authenticate to Clickatell.");
		}
		catch (MalformedURLException e)
		{
			throw new GatewayException("Internal Clickatell Gateway error.");
		}
	}

	boolean authenticate() throws IOException, MalformedURLException
	{
		URL url;
		List<HttpHeader> request = new ArrayList<HttpHeader>();
		List<String> response;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲亚洲精品在线观看| 夜夜嗨av一区二区三区四季av| 成人av资源网站| 五月婷婷综合在线| 国产欧美日本一区视频| 91精品免费在线| 色呦呦网站一区| 国产精品一区二区久激情瑜伽| 亚洲电影视频在线| 国产午夜精品福利| 欧美一区二区啪啪| 色婷婷综合久久| 国产高清精品网站| 久久99日本精品| 午夜精品福利在线| 一区二区三区在线视频观看| 国产欧美精品一区二区色综合 | 亚洲女人****多毛耸耸8| 日韩美女视频一区二区在线观看| 色综合色狠狠综合色| 国产999精品久久久久久绿帽| 喷白浆一区二区| 亚洲综合丁香婷婷六月香| 中文字幕精品三区| 久久久精品免费免费| 精品国免费一区二区三区| 欧美日韩免费高清一区色橹橹| 成人黄色电影在线| 国产福利91精品一区二区三区| 麻豆国产一区二区| 蜜桃久久av一区| 日韩福利电影在线| 五月天国产精品| 亚洲一区二区中文在线| 亚洲视频在线观看三级| 亚洲国产精品黑人久久久| 久久综合国产精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 在线视频综合导航| 91浏览器在线视频| 色婷婷国产精品| 91女厕偷拍女厕偷拍高清| 色综合天天综合网国产成人综合天| 国产69精品久久久久777| 国产精品一区二区在线观看网站| 美国三级日本三级久久99| 免费人成在线不卡| 久久精品99国产精品| 韩日欧美一区二区三区| 韩国一区二区三区| 福利91精品一区二区三区| 成人激情黄色小说| 99久久精品国产毛片| 色婷婷综合久久久久中文| 欧美色手机在线观看| 欧美日韩久久不卡| 精品欧美乱码久久久久久| 精品日韩欧美在线| 中文字幕精品—区二区四季| 综合网在线视频| 亚洲国产成人高清精品| 免费成人你懂的| 国产乱国产乱300精品| 成人性生交大合| 99久久精品费精品国产一区二区| 91黄色激情网站| 日韩免费在线观看| 国产欧美精品国产国产专区| 亚洲三级在线观看| 日本欧美久久久久免费播放网| 激情五月激情综合网| 99久久国产免费看| 91精品欧美久久久久久动漫| 国产调教视频一区| 一区二区欧美国产| 久久99精品久久久久久国产越南| 国产成人精品一区二| 欧洲一区二区三区免费视频| 日韩午夜三级在线| 国产精品毛片久久久久久久| 一级特黄大欧美久久久| 麻豆极品一区二区三区| 99re热这里只有精品视频| 欧美色欧美亚洲另类二区| 精品国产麻豆免费人成网站| 18成人在线视频| 奇米精品一区二区三区在线观看一| 国产成人精品免费视频网站| 在线观看视频一区二区| 久久日韩粉嫩一区二区三区| 亚洲一区二区三区免费视频| 国产一区二区看久久| 在线观看亚洲一区| 国产无遮挡一区二区三区毛片日本| 一区av在线播放| 豆国产96在线|亚洲| 91麻豆精品久久久久蜜臀| 国产精品国产自产拍高清av王其 | 国产成人av影院| 在线成人av影院| 中文字幕一区二区三区乱码在线| 婷婷夜色潮精品综合在线| 不卡视频在线看| 亚洲精品一区二区精华| 一区二区三区国产精华| 国产精品一二三| 欧美丰满高潮xxxx喷水动漫| 国产精品久久久久久久蜜臀| 久久99热狠狠色一区二区| 欧美日韩一二三| 亚洲欧美aⅴ...| 成人免费视频一区| 2023国产一二三区日本精品2022| 亚洲高清视频的网址| 972aa.com艺术欧美| 久久久国际精品| 久久不见久久见免费视频7 | 在线精品视频一区二区| 日本一区二区高清| 国产在线播精品第三| 91麻豆精品国产91久久久久| 伊人性伊人情综合网| 99久久99久久精品国产片果冻| 精品国偷自产国产一区| 日韩avvvv在线播放| 欧美日韩免费观看一区二区三区| 一区二区三区在线播| 91在线观看污| 国产精品九色蝌蚪自拍| 国产成人精品免费一区二区| 久久久精品蜜桃| 国产成a人亚洲| 国产性做久久久久久| 国产最新精品免费| www激情久久| 国产一区二区0| 久久色视频免费观看| 国内精品久久久久影院薰衣草| 日韩久久免费av| 麻豆一区二区三区| 精品久久久久久综合日本欧美 | 日本韩国欧美三级| 亚洲欧美电影院| 欧美亚洲一区三区| 亚洲一区二区三区在线播放| 欧美日韩在线亚洲一区蜜芽| 亚洲国产成人porn| 欧美精品1区2区3区| 日韩激情视频网站| 久久综合色婷婷| 国产suv精品一区二区6| 国产精品久久久久久妇女6080 | 日韩精品一区二区三区三区免费| 美女视频免费一区| 久久精品一区二区三区四区| 不卡一区二区中文字幕| 亚洲自拍偷拍欧美| 91.xcao| 精品一区二区影视| 国产日产欧产精品推荐色| 99国产麻豆精品| 亚洲午夜三级在线| 精品国产sm最大网站免费看| 国产成人综合精品三级| 1000部国产精品成人观看| 欧亚一区二区三区| 久久精品99国产精品| 中文av一区特黄| 欧美三片在线视频观看| 国产最新精品精品你懂的| 中文字幕一区av| 欧美日韩电影在线播放| 国产在线精品免费av| 亚洲欧洲日产国产综合网| 欧美日韩亚洲综合在线 | 色琪琪一区二区三区亚洲区| 午夜免费久久看| 久久人人爽爽爽人久久久| 一本色道久久综合狠狠躁的推荐| 天天影视网天天综合色在线播放| 精品国产sm最大网站| 97精品久久久午夜一区二区三区| 亚洲444eee在线观看| 国产亚洲一区二区三区| 欧美亚洲一区二区在线| 国产精品影视天天线| 亚洲综合一区二区精品导航| 日韩欧美一区二区三区在线| 99久久99久久综合| 久久99久国产精品黄毛片色诱| 亚洲视频免费在线| 日韩片之四级片| 日本精品视频一区二区三区| 久久99国产精品久久99果冻传媒| 国产精品久久二区二区| 久久综合一区二区| 欧美日产在线观看| 91丨porny丨中文| 国产乱一区二区| 五月天丁香久久|