JSON 객체를 받고 해당 내용을 ArrayList에 넣으려고합니다. 우리가 설정 한 PHP 서버는 앱이 서버에 접속하고 있지만 아무 것도 보내지지 않고 있음을 보여줍니다. 치명적인 오류는 발생하지 않지만 Socket Error : Permission Denied가 표시됩니다.JSON을 통해 Android 서버를 PHP 서버에 연결 : 소켓 예외
public class receiveData {
int moisture = LocalStorage.moisture;
User user;
ArrayList<Plant> receivedPlants = new ArrayList<Plant>();
URL url = new URL("http://192.168.0.14/steve.php");
URLConnection urlConnection = (HttpURLConnection) url.openConnection();
public receiveData() throws IOException {
}
public ArrayList<Plant> receivePlantList() {
// HTTP request
urlConnection.setDoOutput(true);
try {
urlConnection.getContent();
} catch (IOException e) {
e.printStackTrace();
}
// Get items from JSON object and place in a plant list
BufferedReader reader = null;
try {
InputStream stream = urlConnection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
JsonReader jReader = new JsonReader(reader);
jReader.beginObject();
while (jReader.hasNext()) {
jReader.nextName();
int plantMoisture = jReader.nextInt();
String plantName = jReader.nextString();
Plant currentPlant = new Plant(plantName, plantMoisture);
receivedPlants.add(currentPlant);
}
jReader.endObject();
reader.close();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
//jReader.close();
return receivedPlants;
}
을하고 여기에 내 안드로이드 매니페스트 : 내가 데이터를 수신하기 위해 호출 할 경우 다음
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
W/System.err: java.net.SocketException: Permission denied
W/System.err: at java.net.Socket.createImpl(Socket.java:454)
W/System.err: at java.net.Socket.getImpl(Socket.java:517)
W/System.err: at java.net.Socket.setSoTimeout(Socket.java:1108)
W/System.err: at com.android.okhttp.Connection.connectSocket(Connection.java:1454)
W/System.err: at com.android.okhttp.Connection.connect(Connection.java:1413)
W/System.err: at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1707)
W/System.err: at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:133)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:466)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:371)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:503)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:438)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:247)
W/System.err: at java.net.URLConnection.getContent(URLConnection.java:737)
W/System.err: at com.example.steve.plantpals.receiveData.receivePlantList(receiveData.java:41)
W/System.err: at com.example.steve.plantpals.UserActivity$1.onClick(UserActivity.java:38)
W/System.err: at android.view.View.performClick(View.java:6205)
W/System.err: at android.widget.TextView.performClick(TextView.java:11103)
W/System.err: at android.view.View$PerformClick.run(View.java:23653)
W/System.err: at android.os.Handler.handleCallback(Handler.java:751)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err: at android.os.Looper.loop(Looper.java:154)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6682)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
W/System.err: java.net.SocketException: Permission denied
W/System.err: at java.net.Socket.createImpl(Socket.java:454)
W/System.err: at java.net.Socket.getImpl(Socket.java:517)
W/System.err: at java.net.Socket.setSoTimeout(Socket.java:1108)
W/System.err: at com.android.okhttp.Connection.connectSocket(Connection.java:1454)
W/System.err: at com.android.okhttp.Connection.connect(Connection.java:1413)
W/System.err: at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1707)
W/System.err: at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:133)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:466)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:371)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:503)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:438)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:247)
W/System.err: at java.net.URLConnection.getContent(URLConnection.java:737)
W/System.err: at com.example.steve.plantpals.receiveData.receivePlantList(receiveData.java:41)
W/System.err: at com.example.steve.plantpals.UserActivity$1.onClick(UserActivity.java:38)
W/System.err: at android.view.View.performClick(View.java:6205)
W/System.err: at android.widget.TextView.performClick(TextView.java:11103)
W/System.err: at android.view.View$PerformClick.run(View.java:23653)
W/System.err: at android.os.Handler.handleCallback(Handler.java:751)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err: at android.os.Looper.loop(Looper.java:154)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6682)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
입니다
,462,
이것은 네트워킹을 필요로하는 내 첫 번째 프로젝트, 나의 첫번째 유래의 질문이 불분명 한 경우 정말 미안.
매니페스트에 추가 된 인터넷 권한은? –
내 대답을 확인하십시오. – diegoveloper