Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何验证httpURLConnection、发送请求和获取响应_Java_Android_Web Services_Authentication_Httpurlconnection - Fatal编程技术网

Java 如何验证httpURLConnection、发送请求和获取响应

Java 如何验证httpURLConnection、发送请求和获取响应,java,android,web-services,authentication,httpurlconnection,Java,Android,Web Services,Authentication,Httpurlconnection,我在验证httpURLConnection时遇到问题。我有一个POST请求的URL,但我需要像用户一样进行身份验证才能从服务器获得响应。我试着用基本的身份验证,但对我来说不起作用。不管怎样,我得到了回应代码:401-未经授权 您知道使用httpURLConnection进行身份验证的其他方法吗?我做错了什么 这是我的代码: Thread networkThread=新线程(){ 推翻 公开募捐{ 试一试{ setDefault(新验证器(){ 推翻 受保护的密码身份验证getPasswordAu

我在验证httpURLConnection时遇到问题。我有一个POST请求的URL,但我需要像用户一样进行身份验证才能从服务器获得响应。我试着用基本的身份验证,但对我来说不起作用。不管怎样,我得到了回应代码:401-未经授权

您知道使用httpURLConnection进行身份验证的其他方法吗?我做错了什么

这是我的代码:

Thread networkThread=新线程(){
推翻
公开募捐{
试一试{
setDefault(新验证器(){
推翻
受保护的密码身份验证getPasswordAuthentication(){
Log.d(标签,“------------------==========>>>>ПАППАЛа”);
返回新密码身份验证(“登录”、“密码”.tocharray());
}
});
URL=新URL(“https://sscale.dk/ro/service2.asmx/stackdata");
字符串urlParameters=“ix=123”;
HttpURLConnection con=(HttpURLConnection)url.openConnection();
String userCredentials=“登录:密码”;
最后一个字符串basicAuth=“Basic”+Base64.encode(userCredentials.getBytes(),Base64.NO_WRAP);
con.setRequestProperty(“授权”,basicAuth);
//发送邮寄请求
con.setRequestMethod(“POST”);
con.setRequestProperty(“内容类型”、“应用程序/x-www-form-urlencoded”);
con.setRequestProperty(“内容长度”,“urlParameters.getBytes().Length”);
con.setRequestProperty(“内容语言”、“美国英语”);
con.setUseCaches(假);
con.setDoInput(真);
con.设置输出(真);
DataOutputStream wr=新的DataOutputStream(con.getOutputStream());
writeBytes(URL参数);
wr.flush();
wr.close();
int responseCode=con.getResponseCode();
System.out.println(“\n向URL发送'POST'请求:“+URL”);
System.out.println(“Post参数:+urlParameters”);
System.out.println(“响应代码:“+responseCode”);
BufferedReader in=新的BufferedReader(
新的InputStreamReader(con.getInputStream());
字符串输入线;
StringBuffer响应=新的StringBuffer();
而((inputLine=in.readLine())!=null){
追加(inputLine);
}in.close();
字符串结果=response.toString();
日志d(标签“------------>Мыыцццццццццццццццц1094;
}捕获(例外e){
e、 printStackTrace();
}
}
};
networkThread.start();
这是我的日志猫:

System.out: Sending 'POST' request to URL : [https://sscale.dk/ro/service2.asmx/stackdata]

System.out: Post parameters : ix=123

System.out: Response Code : 401

System.err: java.io.FileNotFoundException: https://sscale.dk/ro/service2.asmx/stackdata

System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:206)

System.err:     at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)

System.err:     at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)

System.err:     at net.caustix.redoctoberwoodapp.LoginActivity$1.run(LoginActivity.java:112)

我解决了!答案是我访问了错误的API页面。我找到了正确的页面,用post参数“username”和“password”登录,成功了

你的链接错误!!!。请检查一下!这是我正在尝试访问的Web服务的API页面:我正在尝试访问。它没有显示page.API的“stackdata”方法的API:你养了一条狗,自己在叫。使用
验证器
授权:基本…
标题。不是两个都在同一时间。你的链接错误!!!。请检查一下!这是我正在尝试访问的Web服务的API页面:我正在尝试访问。它没有显示page.API的“stackdata”方法的API:你养了一条狗,自己在叫。使用
验证器
授权:基本…
标题。不是两个都在同一时间。