2013-05-16 1 views
0

나는 내 웹 서버의 텍스트 파일에 텍스트를 써야하는 안드로이드 애플리케이션을 이클립스에서 작성 중이다. onCreate()에서 나는 이와 비슷한 것을 씁니다.안드로이드에서 URL의 텍스트 파일에 데이터 쓰기

try{ 
    String data = "hello"; 
    URL u1 = new URL("http://url.com/script.txt"); 
    URLConnection uc1 = u1.openConnection(); 
    uc1.setDoOutput(true); 
    OutputStreamWriter out = new OutputStreamWriter(uc1.getOutputStream()); 
    out.write(data); 
    out.flush(); 
} 
catch(Exception e) { 
    e.printStackTrace(); 
} 

그러나 작동하지 않습니다. 웹 서버의 기존 텍스트 파일에 간단한 텍스트를 작성하면됩니다. 나는 그에게 간단한 작업을 알고 있지만 나는 여러 가지 방법을 시도하고이 아니라 working..Some 번이나 노란색에서 오류가 발생하는 것을 시도 구글에 언젠가 썼다 :

05-16 16:22:24.853: W/System.err(29095): android.os.NetworkOnMainThreadException 

05-16 16:22:25.563: W/System.err(29095): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1108) 
... 
... 
... 

가 나는 또한 비동기 쓰기 시도 :

private class MyAsyncTask extends AsyncTask<Void, Void, Void> 
    { 

     ProgressDialog mProgressDialog; 
     @Override 
     protected void onPostExecute(Void result) { 
     } 

     @Override 
     protected void onPreExecute() { 

     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      //code comes here..... 
    } 
} 

아무것도 작동하지 않습니다. android.permission.ACCESS_NETWORK_STATE 및 android.permission.INTERNET이 매니페스트에서 사용하도록 설정되어 있습니다. 서버 근래에있는 내 폴더에 사용 권한이 있습니다. 어떤 도움에 감사드립니다

... 감사

답변

7

파일 시스템의 리소스처럼 일부 서버에서 제공하는 파일에는 액세스 할 수 없습니다. 데이터와 함께 HTTP POST을 사용하고 PHP와 같은 일부 스크립트 엔진이 파일 쓰기를 완료하도록하십시오.

AsyncTask의 사용도 필요합니다.

+0

팁을 주셔서 감사합니다 ... 다음 스레드에서 응답됩니다 ... http ://// 012031543/write-data-to-a-remote-text-file-in-android – Vinraj

+2

HTTP 1.1은 데이터 업로드를 잘 정의합니다. 이 메소드는'PUT'라고 불리며 RFC 2616 Sec에 명시되어 있습니다. 9.6 : http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 - 올바른 인증, 인증 및 암호화를 추가하고 OP가 원하는 것은 완벽하게 구현할 수 있습니다. – datenwolf

2

이것은 웹 서버, 안드로이드하지에 구현 문제입니다. 하나는 단순히 HTTP를 통해 쓰는 것이 아닙니다. REST API 또는 특수 프로토콜과 같은 것이 필요합니다.

서버에 대한 쓰기 권한은 서버의 현재 사용자에게 해당 폴더에 쓸 수있는 권한이 있음을 의미합니다. 외부 클라이언트는 쓰기를 원하는 텍스트가 포함 된 POST 변수를 허용하는 PHP 스크립트와 같은 것이 없다면 읽을 수만 있습니다.

+1

정확한 아이디어가 몇 초 전에 나를 –

+0

맞습니다. 팁 주셔서 감사합니다. 여기에 상세한 답변이 있습니다. http://stackoverflow.com/questions/12031543/write-data-to-a-remote-text-file-in-android – Vinraj