Cet article présente principalement l'arrière-plan de Java appelant la classe HttpURLConnection pour simuler les instances de requête du navigateur. Cette instance peut être utilisée pour les appels d'interface et a une certaine valeur pratique. Les amis dans le besoin peuvent se référer. à ce qui suit
Généralement, il est inévitable de rencontrer des appels vers des interfaces externes lors du développement d'un projet. Cet article décrit les exemples de Java. La méthode d'appel de la classe HttpURLConnection en arrière-plan pour simuler les requêtes du navigateur peut être utilisée pour les appels d'interface et est partagée avec tout le monde pour votre référence
Écrivez devant :
Le projet est Java Web, jdk1.4, weblogic 7 ; le système .net de l'autre partie utilise une interface développée avec WCF. L'autre partie fournit l'adresse URL de l'interface et les instructions pour l'appeler dans la méthode post. Il n'est pas nécessaire de transmettre des paramètres et elle renvoie directement un tableau json (données au format tableau json)
Il existe de nombreuses méthodes à appeler. l'interface, telle que l'appel de framework, l'appel ajax et urlConnection, etc. En raison des besoins du projet, l'interface du système .net de l'autre partie doit être appelée à distance. L'interface est développée avec wcf, et notre système ici. est Java et jdk est 1.4, donc certains appels de framework grand public ne peuvent plus être utilisés. Généralement, jdk 1.6 ou supérieur est requis. En parlant de cela, axis peut être appliqué à jdk1.4, mais lors de l'utilisation de la méthode de génération de code côté client, les classes que j'ai générées manquaient, je ne sais pas pourquoi, alors j'ai abandonné de manière décisive et parce que c'est une croix ; -interface d'appel de domaine (c'est-à-dire également que les systèmes des deux parties ne sont pas sur le même serveur), et la méthode post est requise pour y accéder, donc la méthode ajax ne fonctionnera pas, car ajax ne prend pas en charge le cross-domain. , jsonp peut être utilisé sur plusieurs domaines, mais il est accessible dans la méthode get. Après avoir lutté et essayé pendant deux ou trois jours, j'ai demandé de l'aide au maître de Tieba. Le maître m'a parlé et m'a demandé d'y accéder en utilisant httpurlconnection, qui est l'interface d'appel d'URLConnection. Après cela, j'ai sorti les notes vidéo du service Web de Chuanzhi Podcast. Elles mentionnaient également l'utilisation de l'interface d'appel URLConnection, j'ai donc prévu de l'essayer. Cela a fonctionné... c'est tellement puissant. . . (Il semble que cette méthode puisse être appliquée à l'appel de diverses interfaces, et puisse également appeler des webservices. Tout le monde peut l'essayer. N'ayez pas peur si vous rencontrez des problèmes, hahaha...)
1. Préparation :
Il semble qu'il ne soit pas nécessaire d'importer des packages jar associés pour l'interface d'appel d'URLConnection. Ce qui est renvoyé ici est la chaîne du tableau json, donc ici je dois utiliser le pot lié à json pour l'obtenir. Importez simplement le package jar json.
Code : vous pouvez d'abord écrire un programme Java principal pour vous connecter et le tester, puis le placer dans un projet spécifique pour l'appeler.
URL url = URL("http://10.10.10.83/GetProjectNameService/GetProjectNameService.svc/getProjectName"URLConnection conn =HttpURLConnection httpConn =System.setProperty("sun.net.client.defaultConnectTimeout", "30000""sun.net.client.defaultReadTimeout", "30000"httpConn.setDoInput(httpConn.setUseCaches(httpConn.setRequestMethod("POST"OutputStream out =ObjectOutputStream objOut = String(""InputStream in =StringBuffer sb = = = ""(httpConn.getResponseCode() == 200BufferedReader reader = BufferedReader( InputStreamReader(in,"UTF-8"= ((line = reader.readLine()) != ="返回结果:"+jarr = ( i=0;i<jarr.length();i++
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!