java - 将文件上传到服务器 Java 时出错

标签 java android

我正在尝试创建一个将文件发送到服务器的应用程序。该应用程序由一个按钮组成,单击该按钮会将文件上传到服务器。这是我到目前为止的代码:

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

最佳答案

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

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

关于java - 将文件上传到服务器 Java 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23070763/

相关文章:

android - Android 中的 float 上下文菜单

java - 使用 JTDS 调用存储过程时如何设置空表类型参数

java - Android 6(棉花糖)的 SSLHandshakeException SSLProtocolException

android - 有没有适用于 iOS 和 Android 的 Cordova 日历插件?

android - 如何存储 2d 横向卷轴游戏的屏幕对象?

android - 电竞、碰撞现场

java - 如何将此 SQL 查询写入 jOOQ?

java - Struts 配置与 Tiles

java - cucumber junit 转轮 java.lang.NoSuchMethodError :

java - 错误 : package org. Threeten.bp.format 不存在