Привет пользователям stackoverflow,
Я пытаюсь написать почтовый запрос (отправляет SMS), который вызывается нажатием кнопки.Запрос на публикацию имеет:
Один параметр URL: api_key
Один заголовок: "Content-Type" = "application / x-www-form-urlencoded"
Три JSONпары: ("from", "insert # here"), ("to", "insert # here") и ("body", "Hello, World")
Отправив мой запрос POST по адресуURL конечной точки REST API, я хочу, чтобы SMS отправлялось, когда пользователь нажимает кнопку.Вот что у меня есть:
public class PostSMS extends AsyncTask<Void, String, String>
{
@Override
protected String doInBackground(Void... params) {
try {
MainActivity.text.setText("enteredTry");
URL url = new URL("https://api.apidaze.io/apikey/sms/send?api_secret=apisecret");
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
MainActivity.text.setText("connectionBuilt");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestMethod("POST");
MainActivity.text.setText("connectionEstablished1");
urlConnection.connect();
MainActivity.text.setText("connectionEstablished23");
// Create JSONObject Request
JSONObject jsonRequest = new JSONObject();
jsonRequest.put("from", "1111111111");
jsonRequest.put("to", "1111111112");
jsonRequest.put("body", "Hello, World");
MainActivity.text.setText("jsonArrayConstructed");
// Write Request to output stream to server
OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
out.write(jsonRequest.toString());
out.close();
MainActivity.text.setText("OutputStream written");
int statusCode = urlConnection.getResponseCode();
String statusMsg = urlConnection.getResponseMessage();
// Connection success. Proceed to fetch the response.
if (statusCode == 200)
{
InputStream it = new BufferedInputStream(urlConnection.getInputStream());
InputStreamReader read = new InputStreamReader(it);
BufferedReader buff = new BufferedReader(read);
StringBuilder dta = new StringBuilder();
String chunks;
while ((chunks = buff.readLine()) != null)
{
dta.append(chunks);
}
String returndata = dta.toString();
return returndata;
}
catch (ProtocolException e)
{
e.printStackTrace();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}
При запуске этого кода в OnClickListener мой объект TextView ( текст в коде) показывает только «connectionEstablished1»в эмуляторе, поэтому он не запускает остальную часть программы.
После запуска
urlConnection.setRequestMethod("POST");
MainActivity.text.setText("connectionEstablished1");
,
программа больше не запускается.Нет ошибок во время компиляции.
У меня также есть разрешение
<uses-permission android:name="android.permission.INTERNET" />
.
Спасибо!