public static String request(String httpUrl, String httpArg) { BufferedReader reader = null; String result = null; StringBuffer sbf = new StringBuffer(); httpUrl = httpUrl + "?" + httpArg; try { URL url = new URL(httpUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 填入apikey到HTTP header connection.setRequestProperty("apikey", " ************"); connection.connect(); InputStream is = connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String strRead = null; while ((strRead = reader.readLine()) != null) { sbf.append(strRead); sbf.append("\r\n"); } reader.close(); result = sbf.toString(); } catch (Exception e) { e.printStackTrace(); } return result; }
时间: 2024-01-25 22:05:04 浏览: 126
Java实现输入流转化为String
.xml文件中添加一个ListView组件:
```xml
<ListView
android:id="@+id/listView"
android:layout_width这段代码的作用是通过 HTTP 请求来获取数据,其中 `httpUrl` 是请求的地址,`httpArg` 是="match_parent"
android:layout_height="match_parent" />
```
9. 在activity_edit.xml文件中添加三个EditText请求的参数。
但是,这段代码存在一些问题:
1. `httpUrl` 和 `httpArg` 直接拼组件和两个Button组件:
```xml
<EditText
android:id="@+id/editTextWord"
android:layout接成 URL,容易被攻击者利用 URL 注入漏洞进行攻击。建议使用 `URLEncoder.encode()`_width="match_parent"
android:layout_height="wrap_content"
android:hint="Word" />
<EditText
android:id 方法对参数进行编码。
2. 请求方式为 POST,但并没有向服务器传递参数,建议使用 `connection.getOutputStream="@+id/editTextMeaning"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android()` 方法获取输出流,将参数写入输出流中。
3. 在请求头中添加了 `apikey`,但是没有:hint="Meaning" />
<EditText
android:id="@+id/editTextSentence"
android:layout_width="match_parent"
说明该参数的作用和来源。建议添加注释说明该参数的具体作用和如何获取。
4. android:layout_height="wrap_content"
android:hint="Sentence" />
<Button
android:id="@+id/buttonSave"
异常处理只是简单地打印了异常信息,没有对异常进行处理。建议根据具体情况进行 android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:onClick异常处理,避免程序崩溃。
以上是该段代码存在的问题,希望对您有所帮助。
阅读全文