我试图使用android HttpUrlConnection进行POST请求。首先,我从这里使用GET请求的示例:
http://developer.android.com/training/basics/network-ops/connecting.html#http-客户
它工作得非常好(例如,我得到了google.com页面)。然后我做了一些更改以发出POST请求:更改POST上的请求方法:
conn.setRequestMethod("POST");
并添加以下代码(从这里获得:http://developer.android.com/reference/java/net/HttpURLConnection.html):
conn.setDoOutput(true);
conn.setChunkedStreamingMode(0);
OutputStream out = new BufferedOutputStream(conn.getOutputStream());
out.close();
所以现在下载Url的方法看起来像这样:
private String downloadUrl(String myurl) throws IOException {
InputStream is = null;
// Only display the first 500 characters of the retrieved
// web page content.
int len = 500;
try {
URL url = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setChunkedStreamingMode(0);
OutputStream out = new BufferedOutputStream(conn.getOutputStream());
out.close();
// Starts the query
conn.connect();
int response = conn.getResponseCode();
Log.d(DEBUG_TAG, "The response is: " + response);
is = conn.getInputStream();
// Convert the InputStream into a string
String contentAsString = readIt(is, len);
return contentAsString;
// Makes sure that the InputStream is closed after the app is
// finished using it.
} finally {
if (is != null) {
is.close();
}
}
}
它总是抛出一个例外。你能帮帮我吗,怎么了?
我承认了这个问题:问题是服务器不接受所选URL上的POST请求。更改URL(和服务器)会导致请求成功,而不会引发异常。
这是因为Android不允许您在主UI线程上启动网络连接。你必须启动一个后台线程(使用AsyncTask
)并从那里开始。
在这个问题上有更多细节。
我正在编写一个简单的脚本,涉及CAS、jSpring Security检查、重定向等。我想使用Kenneth Reitz的python请求,因为这是一个很棒的工作!然而,CAS需要通过SSL进行验证,所以我必须首先通过这一步。我不知道Python requests需要什么?这个SSL证书应该驻留在哪里?
我使用的是Restcomm SMSC的最新版本(SMSCGATEWAY-7.3.153)(可在以下站点获得:https://github.com/Restcomm/sMSCGATEWAY/releases/tag/7.3.153)。我使用的是二进制版本,而不是源代码。 我已经启动并运行了它与卡珊德拉通信,卡珊德拉适当地托管在不同的机器上。 我正在附加一个。pcap文件,它显示了我通过Wiresha
发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client
构建 Web 应用时,把请求转发给另一个 servlet 处理、或在请求中包含另一个 servlet 的输出通常是很有用的。RequestDispatcher 接口提供了一种机制来实现这种功能。 当请求启用异步处理时,AsyncContext 允许用户将这个请求转发到servlet 容器。
jd.request(OBJECT) 发起网络请求。 OBJECT参数说明: 参数名 类型 必填 默认值 说明 url String 是 开发者服务器接口地址 data Object/String/ArrayBuffer 否 请求的参数 header Object 否 设置请求的 header,header 中不能设置 Referer。 method String 否 GET (需大写)有效值:
HTTP 请求 数据绑定 使用 Context#Bind(i interface{}) 绑定一个请求内容体到 go 的结构体。默认的绑定器支持解析 Content-Type 是 application/json,application/xml 和 application/x-www-form-urlencoded 的数据。 下面是绑定请求数据到 User 结构体的例子 // User User s