将文件上载到Java服务器时出错

将文件上载到Java服务器时出错,java,android,Java,Android,我正在尝试创建一个将文件发送到服务器的应用程序。该应用程序由一个按钮组成,单击该按钮后,将向服务器上载文件。以下是我目前掌握的代码: public class MainActivity extends Activity implements OnClickListener { final String TAG = "sendButton"; final String TAG2 = "messageButton"; TextView messageText; Button uploadButton

我正在尝试创建一个将文件发送到服务器的应用程序。该应用程序由一个按钮组成,单击该按钮后,将向服务器上载文件。以下是我目前掌握的代码:

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

您可能需要在项目清单文件中启用Internet访问:

<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>

您需要有通过internet发送数据的权限,请将以下行添加到AndroidManifest.xml中

  <uses-permission android:name="android.permission.INTERNET" />