#java #spring-boot #sms
#ява #весенняя загрузка #sms #java
Вопрос:
Я пытаюсь интегрировать ClickSend для отправки sms.
Возможность отправить sms, используя приведенный ниже код:
SmsApi apiInstance = new SmsApi(defaultClient);
SmsMessage smsMessage1 = new SmsMessage();
smsMessage1.body("Test SMS 1");
smsMessage1.to(" 61411111111");
smsMessage1.source("Java");
List<SmsMessage> smsMessageList = Arrays.asList(smsMessage1);
SmsMessageCollection smsMessages = new SmsMessageCollection();
smsMessages.messages(smsMessageList);
try {
String result = apiInstance.smsSendPost(smsMessages);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling SmsApi#smsSendPost");
e.printStackTrace();
}
Формат ответа — строка. Но для этого не предоставлен класс.
Трудно получить данные для нескольких SmsMessage.
Как прочитать ответ ClickSend smsSendPost в Java SDK ?
Есть ли какой-либо доступный класс, который содержит ответ, такой как SmsMessage, SmsMessageCollection в Java SDK ClickSend.
Ответ №1:
Надеюсь, это поможет:
package com.example.demo;
import ClickSend.*;
import ClickSend.auth.*;
import ClickSend.Model.*;
import ClickSend.Api.AccountApi;
import ClickSend.Api.SmsApi;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.File;
import java.util.*;
public class SMS {
public static void main(String[] args) {
sendSMS();
}
public static void sendSMS() {
ApiClient defaultClient = new ApiClient();
defaultClient.setUsername("your_login@email.com");
defaultClient.setPassword("SecretPa$$word!");
SmsApi apiInstance = new SmsApi(defaultClient);
SmsMessage smsMessage=new SmsMessage();
smsMessage.body("This is the body of the message");
smsMessage.to(" 6111111111");
smsMessage.source("java");
List<SmsMessage> smsMessageList=Arrays.asList(smsMessage);
SmsMessageCollection smsMessages = new SmsMessageCollection();
smsMessages.messages(smsMessageList);
try {
String result = apiInstance.smsSendPost(smsMessages);
System.out.println(result);
JsonObject jsonObject = new JsonParser().parse(result).getAsJsonObject();
JsonArray messageArray = jsonObject.getAsJsonObject("data").getAsJsonArray("messages");
// Here is the array and how to grab some stuff out of it.
// Could also use messageArray.forEach here
for( int i = 0; i <= messageArray.size(); i ) {
JsonObject message = messageArray.get(i).getAsJsonObject();
double price = message.get("message_price" ).getAsDouble();
String body = message.get("body").getAsString();
System.out.printf( "It cost %f to send '%s'n", price, body);
}
} catch (ApiException e) {
System.err.println("Oops");
e.printStackTrace();
}
}
}
Комментарии:
1. можете ли вы предоставить мне пример кода для преобразования строки ответа smsSendPost в массив, чтобы получить подробную информацию на Java?