我见过这个question,这不是我的情况,因为我的网址中没有反斜杠,
我有简单的网址,例如https://url.com/login
我的代码,
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class LoginActivity extends AppCompatActivity {
URL url = new URL("https://url.net/login/");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
FloatingActionButton btn = (FloatingActionButton) findViewById(R.id.submitbtn);
EditText edtxt = (EditText) findViewById(R.id.usernm);
EditText edtxt2 = (EditText) findViewById(R.id.usrpwd);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),HomeActivity.class);
startActivity(i);
}
});
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) url.openConnection();
} catch (IOException e) {
e.printStackTrace();
}
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in);
} finally {
urlConnection.disconnect();
}
}
}
截图:
当我将鼠标悬停在new URL();
上时,我得到错误:
未处理的异常:java.net.MalformedURLException
这就是我在线上收到另一个错误的原因,
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in);
堆栈中的跟踪我的错误为
Error:(48, 13) error: cannot find symbol method readStream(InputStream)
答案 0 :(得分:2)
当我将鼠标悬停在新网址();上时,我收到错误消息:
URL()
构造函数抛出java.net.MalformedURLException
。您需要将该构造函数调用包装在try
/ catch
块中。
这就是我在线上收到另一个错误的原因,
这是因为getInputStream()
也会抛出已检查的异常。您需要将该代码包装在try
/ catch
块中。
这是错误行,我收到错误错误:(48,13)错误:找不到符号方法readStream(InputStream)
这是因为你没有在这个类上实现一个名为readStream()
的方法。
所有这些都包含在关于Java编程的任何体面的书籍或课程中。
最终,一旦您通过这些编译错误,您的代码将在运行时使用NetworkOnMainThreadException
崩溃,因为您无法在主应用程序线程上执行网络I / O.您需要将此HTTP代码移动到后台线程,无论是您自己创建的还是使用可以为您处理它的HTTP客户端API(例如,OkHttp)。