有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的应用程序在尝试使用DataOutputStream时崩溃

我正在尝试创建一个应用程序,使用DataOutputStream out=newdataoutputstream(httpURLConnection.getOutputStream())将信息发布到网页; 但如果我这样做,它就会崩溃

我的应用程序/src/main/AndroidManifest。xml如下所示:

<uses-permission 安卓:name="com.symbol.emdk.permission.EMDK"/>
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE" />
<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
<uses-permission 安卓:name="安卓.permission.BIND_CARRIER_MESSAGING_SERVICE" />
<uses-permission 安卓:name="安卓.permission.ACCESS_NOTIFICATION_POLICY" />

<application
    安卓:allowBackup="true"
    安卓:icon="@mipmap/ic_launcher"
    安卓:label="@string/app_name"
    安卓:theme="@style/AppTheme" >


    <uses-library 安卓:name="com.symbol.emdk"/>

class AsyncT extends AsyncTask<Void,Void,Void>
{
    public String info="";
    public String info2="";
    @Override
    protected Void doInBackground(Void... voids) {


        try {
            URL url = new URL("http://mypage.nu/info.php");
            HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();

            httpURLConnection.setDoOutput(true);
            httpURLConnection.setRequestMethod("POST"); 
            httpURLConnection.setUseCaches(false);
            httpURLConnection.setInstanceFollowRedirects(true);
            httpURLConnection.setConnectTimeout(20000);
            httpURLConnection.setReadTimeout(30000);
            httpURLConnection.setRequestProperty("Content-Type", "application/json"); 
            //httpURLConnection.connect();
            try {
                    DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream());//Something goes wrong  
            }catch(IOException e){     
                 e.printStackTrace();                    
            }
            String json="{'name':'test'}";
            out.writeBytes("x="+json);
            httpURLConnection.disconnect();
        }...

我希望我可以检索$obj = json_decode($_POST["x"], false);

但它在试图创建DataOutputStream out = new DataOutputStream时死亡


共 (1) 个答案

  1. # 1 楼答案

    你必须告诉连接你想要一个输出流

    httpURLConnection.setDoOutput(true);
    httpURLConnection.setDoInput(true);
    

    UrlConnection见第章: Java