我试图使用Twilio接收SMS消息,并使用SMS的正文执行各种数据库功能。卡住的部分是解析当他们收到文本消息时从Twilio获得的消息。
这是控制器:
@RequestMapping(
value = "/incomingSMS",
method = RequestMethod.POST)
public void getPhrase(@RequestBody String request) {
System.out.println("***********************************");
System.out.println(request);
System.out.println("***********************************");
}
这是打印出来的内容(增加了新行以提高可读性,并检查了一些数字):
ToCountry=US&
ToState=statecode&
SmsMessageSid=smsMessageSid&
NumMedia=0&
ToCity=city&
FromZip=zipCode&
SmsSid=SmsSid&
FromState=statecode&
SmsStatus=received&
FromCity=city&
Body=Hello+it%27s+John+&
FromCountry=US&
To=%2B1toPhoneNumber&
ToZip=55401&
NumSegments=1&
MessageSid=messageSid&
AccountSid=accountSid&
From=%2B1fromPhoneNumber&
ApiVersion=2010-04-01
我可以在“正文”中看到我的消息正在隐藏。我也看到电话号码。有什么方法可以将其解析为我不知道的Twilio对象,因此可以使用类似的方法getBody(), getFrom()
?
您可以使用旧的java.util.Properties类轻松地对其进行操作。
对于下面的示例,我正在使用Apache Common IO lib将类转换String
为InputStream
女巫Properties
。之后,您所要做的就是使用getProperty
方法获得所需的东西。
package com.pipocandobits.maven;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import java.util.Properties;
public class App {
public static void main( String[] args ) throws IOException {
System.out.println( "Hello World!" );
String source = "ToCountry=US&\n" +
"ToState=statecode&\n" +
"SmsMessageSid=smsMessageSid&\n" +
"NumMedia=0&\n" +
"ToCity=city&\n" +
"FromZip=zipCode&\n" +
"SmsSid=SmsSid&\n" +
"FromState=statecode&\n" +
"SmsStatus=received&\n" +
"FromCity=city&\n" +
"Body=Hello+it%27s+John+&\n" +
"FromCountry=US&\n" +
"To=%2B1toPhoneNumber&\n" +
"ToZip=55401&\n" +
"NumSegments=1&\n" +
"MessageSid=messageSid&\n" +
"AccountSid=accountSid&\n" +
"From=%2B1fromPhoneNumber&\n" +
"ApiVersion=2010-04-01";
Properties properties = new Properties();
properties.load(IOUtils.toInputStream(source, "UTF-8"));
System.out.println("Message body = " + properties.getProperty("Body"));
}
}
有关如何使用java.util.Properties
该类的更多信息,请检查此链接https://www.tutorialspoint.com/java/java_properties_class.htm
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句