2014-04-14 3 views
0

파일을 서버로 보내는 응용 프로그램을 만들려고합니다. 응용 프로그램은 하나의 단추로 구성되며 클릭하면 파일을 서버에 업로드합니다. 여기에 지금까지 가지고있는 코드는 다음과 같습니다 서버로 파일을 업로드하는 중 오류가 발생했습니다. Java

public class MainActivity extends Activity implements OnClickListener { 
final String TAG = "sendButton"; 
final String TAG2 = "messageButton"; 
TextView messageText; 
Button uploadButton; 
int serverResponseCode = 0; 
String result = null; 
String url = "http://192.168.1.18"; 
File file = new File("example.txt"); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // findViewById(R.id.button2).setOnClickListener(this); 
    //findViewById(R.id.button2).setOnClickListener(this); 


    setupsendMessage(); 
    //setupmessageButton(); 
    uploadButton = (Button)findViewById(R.id.button1); 
    messageText = (TextView)findViewById(R.id.button2); 
} 




private void setupsendMessage() { 
// do something when the button is pressed 
// 
Button sendButton = (Button) findViewById(R.id.button1); 

sendButton.setOnClickListener(new View.OnClickListener(){ 

    @Override 
    public void onClick(View v) { 

     try { 

     HttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost(url); 
     MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 
     builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 






     FileBody fileBody = new FileBody(file); 
     builder.addPart("file", fileBody); 
     final HttpEntity yourEntity = builder.build(); 
     post.setEntity(yourEntity); 
     HttpResponse response = client.execute(post); 
     HttpEntity httpEntity = response.getEntity(); 
     result = EntityUtils.toString(httpEntity); 
     Log.v("result", result); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace();} 
     Log.i(TAG, "File Sent to Server"); 
     Toast.makeText(MainActivity.this, "File Sent to Server", Toast.LENGTH_LONG).show(); 

    } 


     }); 



    }; 

내가 응용 프로그램의 모든 것이 잘 나타나는 코드를 실행,하지만 난 버튼 아무것도 누르지 때 발생 내가 추적에 오류가

.

04-14 17:20:39.504: W/IInputConnectionWrapper(1693): showStatusIcon on inactive InputConnection 
04-14 17:20:46.121: W/System.err(1693): java.net.SocketException: Permission denied 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.harmony.luni.platform.OSNetworkSystem.socket(Native Method) 
04-14 17:20:46.121: W/System.err(1693):  at dalvik.system.BlockGuard$WrappedNetworkSystem.socket(BlockGuard.java:335) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:216) 
04-14 17:20:46.121: W/System.err(1693):  at java.net.Socket.checkOpenAndCreate(Socket.java:802) 
04-14 17:20:46.121: W/System.err(1693):  at java.net.Socket.connect(Socket.java:948) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
04-14 17:20:46.121: W/System.err(1693):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
04-14 17:20:46.121: W/System.err(1693):  at school.project.application.MainActivity$1.onClick(MainActivity.java:117) 
04-14 17:20:46.121: W/System.err(1693):  at  android.view.View.performClick(View.java:2485) 
04-14 17:20:46.131: W/System.err(1693):  at android.view.View$PerformClick.run(View.java:9081) 
04-14 17:20:46.131: W/System.err(1693):  at android.os.Handler.handleCallback(Handler.java:587) 
04-14 17:20:46.131: W/System.err(1693):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-14 17:20:46.131: W/System.err(1693):  at android.os.Looper.loop(Looper.java:130) 
04-14 17:20:46.131: W/System.err(1693):  at android.app.ActivityThread.main(ActivityThread.java:3696) 
04-14 17:20:46.131: W/System.err(1693):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-14 17:20:46.131: W/System.err(1693):  at java.lang.reflect.Method.invoke(Method.java:507) 
04-14 17:20:46.131: W/System.err(1693):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
04-14 17:20:46.131: W/System.err(1693):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 
04-14 17:20:46.131: W/System.err(1693):  at dalvik.system.NativeStart.main(Native Method) 
04-14 17:20:46.131: I/sendButton(1693): File Sent to Server 

답변

2

당신은 프로젝트의 매니페스트 파일에 인터넷 액세스를 활성화해야 할 수도 있습니다 :

당신은 인터넷을 통해 데이터를 보낼 수있는 권한이 있어야합니다
<uses-permission android:name="android.permission.INTERNET" > 
</uses-permission> 
+0

감사합니다. 문제가 해결되었습니다. – Brian

0

의 추가 다음과 같이

오류는 AndroidManifest.xml에 다음 줄을 입력하십시오.

<uses-permission android:name="android.permission.INTERNET" /> 
관련 문제