1 pública clase SendMessageUtil { 2 // 短信发送相关数据 3 privada estática Cadena strUserName = "" ; 4 privada estática Cadena strPassword = "" ; 5 pública estática DynamicClientFactory dcf = nulo ; 6 pública estática cliente org.apache.cxf.endpoint.Client = nula ; 7 estática { 8 dcf = DynamicClientFactory.newInstance (); 9 cliente = dcf.createClient ( "" ); 10 } 11 12 13 privada estática int posterior (ruta de cadena, cadena JSON) lanza la excepción { 14 HttpClient cliente = nueva HttpClient (); 15 PostMethod postMethod = nuevo PostMethod (ruta de acceso); 16 postMethod.setRequestHeader ( "Content-Type", "application / json" ); 17 byte [] requestBytes = json.getBytes ( "UTF-8"); // 将参数转为二进制流 18 InputStream flujoEntrada = nuevo ByteArrayInputStream (requestBytes, 0 , requestBytes.length); 19 RequestEntity = RequestEntity nuevo nuevo InputStreamRequestEntity (flujoEntrada, 20 es requestBytes.length, "aplicación de archivo / JSON;. Charset = UTF-8"); // cuerpo de la solicitud 21 es postMethod.setRequestEntity (RequestEntity); 22 es int Estado = client.executeMethod (PostMethod); 23 es retorno de Estado; 24 } 25 26 es / ** 27 * asíncrono enviar SMS 28 * 29 * @param strPhoneNos, número de teléfono, para adoptar múltiples; aparte. 30 * @param contenido del mensaje enviado strMsg. 31 * @Author 012169 09/12/2013下午02:32:04 32 * / 33 pública estática void sendmsg (String strPhoneNos, Cadena strMsg) { 34 ClientCallback de devolución de llamada = nuevo ClientCallback (); 35 int intReply = 0 ; 36 37 try { 38 39 client.invoke (devolución de llamada, "sendmsg", nuevo Object [] {strPhoneNos, strMsg, strUserName, strPassword}); 40 Object [] replys = callback.get (); 41 para (Object o: replys) { 42 = IntReply NumUtils.objectConvertToInt (O); 43 es } 44 es // intReply, 0: el nombre de usuario no existe, -1: contraseña incorrecta, 02: Artículo Número transmisión de mensajes por encima del límite superior de este mes <0: transmisión fallida> 0: transmisión con éxito 45 } la captura (Exception e) { 46 es log.error ( "error de envío:" + e.getMessage () + " ; valor de retorno:" strPhoneNos + + + intReply strMsg); 47 } 48 } 49 50 / ** 51 * sincronización enviar mensaje 52 es * 53 es * @param strPhoneNos, número de teléfono, para adoptar múltiples; aparte. 54 * @param contenido del mensaje enviado strMsg. 55 * @Author 012169 09/12/2013下午02:32:04 56 * / 57 pública estática void sendMsgBySynchronously (String strPhoneNos, Cadena strMsg) { 58 Object [] replys = nulo ; 59 int intReply = 0 ; 60 61 try { 62 replys = client.invoke ( "sendmsg", nuevo Object [] {strPhoneNos, strMsg, strUserName, strPassword}); 63 64 para (Object o: replys) { 65 intReply = NumUtils.objectConvertToInt (o); 66 } 67 68 // intReply, 0: El usuario no existe, -1: contraseña incorrecta 02: el número de mensajes de texto enviados tira por encima del límite superior de este mes, <0: No se pudo enviar> 0: enviado con éxito 69 70 } la captura (Excepción E ) { 71 es log.error ( "error Enviar:" + e.getMessage () + " ; valor de retorno:" strPhoneNos + + + intReply strMsg); 72 } 73 es 74 } 75 }