Java 403尝试从Android建立连接时出现响应错误

Java 403尝试从Android建立连接时出现响应错误,java,android,Java,Android,当我尝试在Android上发布HTTP帖子时,会出现以下异常: java.io.FileNotFoundException 然而,在桌面上通过浏览器浏览时,同样的功能也可以正常工作 执行此行时显示异常: InputStream inputStream = httpURLConnection.getInputStream(); 这是我的日志: 我已尝试使用以下代码: @Override protected String doInBackground(String... args

当我尝试在Android上发布HTTP帖子时,会出现以下异常:

java.io.FileNotFoundException

然而,在桌面上通过浏览器浏览时,同样的功能也可以正常工作

执行此行时显示异常:

InputStream inputStream = httpURLConnection.getInputStream();
这是我的日志:

我已尝试使用以下代码:

@Override
        protected String doInBackground(String... args) {

            try {
                // setting the URL
                URL url = new URL(baseUrl+args[1]);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.addRequestProperty("User-Agent", "RealTimeApps/1.0");
                // setting the method type
                httpURLConnection.setRequestMethod(args[0]);
                httpURLConnection.setChunkedStreamingMode(0);
                httpURLConnection.setDoInput(true);
                httpURLConnection.setDoOutput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));

                Log.v("Url",args[2]);
                // setting the identification key name with query params
                bufferedWriter.write(args[2]);
                bufferedWriter.flush();
                bufferedWriter.close();

                Log.v("GetPostA", url.toString());

                int getPostStatus = httpURLConnection.getResponseCode();

                Log.v("GetPostSts", String.valueOf(getPostStatus));

                String line = "";
                String res = "";
//                if(getPostStatus == 200){

                    // prepare the output buffer
                    InputStream inputStream = httpURLConnection.getInputStream();
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));

                    while ((line = bufferedReader.readLine()) != null) {

                        res += line;

                    }

                    inputStream.close();

//                }

                httpURLConnection.disconnect();

                switch (args[3]){
                    case "1":
                        responseStrLogin = res.toString();
                        break;
                    case "2":
                        responseStrSignUp = res.toString();
                        break;
                    case "3":
                        responseStrFriendList = res.toString();
                        break;
                    case "4":
                        responseStrUpdateLocation = res.toString();
                        break;
                    case "5":
                        responseStrSettings = res.toString();
                        break;
                    case "6":
                        responseStrSearchFriendForRequest = res.toString();
                        break;
                    case "7":
                        responseStrSendFriendRequest = res.toString();
                        break;
                    case "8":
                        responseStrUserFriendRequestList = res.toString();
                        break;
                    case "9":
                        responseStrApproveFriendRequest = res.toString();
                        break;
                    case "10":
                        responseStrProfileDetails = res.toString();
                        break;
                    case "11":
                        responseStrCarDetails = res.toString();
                        break;
                    case "12":
                        responseStrCorporateDetails=res.toString();
                        break;
                    case "13":
                        responseStrPasswordChange=res.toString();
                        break;
                    case "14":
                        responseStrLocationShareToggle=res.toString();
                        break;
                    case "15":
                        responseStrToggleStatus=res.toString();
                        break;
                    case "16":
                        responseStrForgetPassword=res.toString();
                        break;
                    case "17":
                        responseStrSearchResult=res.toString();
                        break;
                    case "18":
                        responseStrDeleteFriend=res.toString();
                        break;
                    case "19":
                        responseStrSearchResultFriendList=res.toString();
                        break;
                    case "20":
                        responseStrShowFriendList=res.toString();
                        break;
                    case "21":
                        responseStrShowFriendProfileDetails=res.toString();
                        break;
                    case "22":
                        responseStrTimeSetForIndividuals=res.toString();
                        break;
                    case "23":
                        responseStrFriendListPeriod=res.toString();
                        break;

                    case "24":
                        responseStrFriendsRouteLatLng=res.toString();
                        break;

                    default:
                       responseStr = res.toString();
                        break;
                }
                Log.v("ResD", res.toString());
                return res.toString();

            } catch (MalformedURLException e) {

                e.printStackTrace();
                Log.v("GetPostCatchMal",e.toString());

            } catch (IOException e) {
                e.printStackTrace();
                Log.v("GetPostCatchIOE", e.toString());
            }

            return null;

        }

您没有连接url连接

就在

int getPostStatus = httpURLConnection.getResponseCode();
仅当url连接响应正常时才执行其余操作,如

if (httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
  //do your stuff
}
你也可以在这里查看我的答案:

更新


如果添加了
httpURLConnection.connect()。我尝试了你的URL,但发现该文件不可用。请提供一个特定的文件地址(如systechdigital.com/projects/friendLocation/login/checkLogin/index.php)作为url,然后重试。

多次尝试后,问题就解决了。我在下面提到的行中得到了403的响应: httpURLConnection.setChunkedStreamingMode(0);我强制设置了块长度0,这就是问题所在。谢谢大家的合作。 有关更多信息,请访问以下链接:

服务器在哪里?它在你的本地桌面上吗?HTTP代码403是禁止的。不,它是公共服务器:操作url:我使用Fiddler从我的桌面发了一篇帖子,也返回了200。您是否授予在de android设备上访问internet的权限?是的,我授予了,下面是我在我的应用程序中使用的权限列表:您能否解释为什么添加此“httpURLConnection.addRequestProperty(“用户代理”,“RealTimeApps/1.0”)请给我你的新日志03-20 10:54:01.541 9066-9602/com.tracker.systechdigital.realtimetracking和monitoring V/GetPostSts:403 03-20 10:54:01.551 9066-9602/com.tracker.systechdigital.realtimetracking和monitoring V/getpostchioe:java.io.filenotfound异常:我检查了你的服务器。它在php中也不可用。所以试着给出一个特定的php文件地址作为url。您是否在checkLogin文件夹中提供了index.php文件?亲爱的#测试这是一个MVC应用程序,这就是(.php)不可用的原因。“login”是控制器,checkLogin是该控制器的方法。
int getPostStatus = httpURLConnection.getResponseCode();
if (httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
  //do your stuff
}