这可能吗?
xmlHttp.send({
"test" : "1",
"test2" : "2",
});
Run Code Online (Sandbox Code Playgroud)
也许用:标题content type:application/json?:
xmlHttp.setRequestHeader('Content-Type', 'application/json')
Run Code Online (Sandbox Code Playgroud)
否则我可以使用:
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
Run Code Online (Sandbox Code Playgroud)
然后JSON.stringify是JSON对象并将其发送到参数中,但如果可能的话,以这种方式发送它会很酷.
我正在编写一个Web服务(使用ASP.NET MVC),出于支持目的,我们希望能够尽可能接近原始的在线格式(即包括HTTP)来记录请求和响应方法,路径,所有标题和正文)到数据库中.
我不确定的是如何以最少的"损坏"方式获取这些数据.通过检查HttpRequest对象的所有属性并从中构建字符串(以及类似的响应),我可以重新构建我认为请求的样子,但我真的想要获取实际的请求/响应数据.发送电线.
我很乐意使用任何拦截机制,如过滤器,模块等,解决方案可以特定于IIS7.但是,我更喜欢将其保留在托管代码中.
有什么建议?
编辑:我注意到HttpRequest有一个SaveAs方法可以将请求保存到磁盘,但是这会使用无法公开访问的内部帮助程序方法从内部状态重建请求(这就是为什么这不允许保存到用户提供的流我不知道).所以它开始看起来我将不得不尽最大努力重建来自对象的请求/响应文本......呻吟.
编辑2:请注意我说的整个请求包括方法,路径,标题等.当前响应只查看不包含此信息的正文流.
编辑3:没有人在这里阅读问题吗?到目前为止,有五个答案,但是没有一个答案暗示了一种获得整个原始线上请求的方法.是的,我知道我可以从请求对象中捕获输出流和标题以及URL和所有内容.我在问题中已经说过了,请看:
通过检查HttpRequest对象的所有属性并从中构建字符串(以及类似的响应),我可以重新构建我认为请求的样子,但我真的想得到实际的请求/响应数据这是通过电线发送的.
如果你知道完整的原始数据(包括header,url,http方法等)根本无法检索,那么知道这将是有用的.同样地,如果你知道如何以原始格式获取所有内容(是的,我仍然意味着包括标题,网址,http方法等),而不必重新构建它,这就是我所问的,那将是非常有用的.但告诉我,我可以从HttpRequest/ HttpResponse对象重建它是没有用的.我知道.我已经说过了.
请注意:在任何人开始说这是一个坏主意,或将限制可扩展性等之前,我们还将在分布式环境中实施限制,顺序传递和反重放机制,因此无论如何都需要数据库日志记录.我不是在寻找关于这是否是一个好主意的讨论,我正在寻找如何做到这一点.
该模块是'请求https://github.com/mikeal/request
我想我正在遵循每一步,但我错过了一个论点..
var request = require('request');
request.post({
url: 'http://localhost/test2.php',
body: "mes=heydude"
}, function(error, response, body){
console.log(body);
});
Run Code Online (Sandbox Code Playgroud)
在另一端我有
echo $_POST['mes'];
Run Code Online (Sandbox Code Playgroud)
我知道php没有错...
我正在尝试GET使用二进制数据request,并有类似的东西:
var requestSettings = {
method: 'GET',
url: url,
};
request(requestSettings, function(error, response, body) {
// Use body as a binary Buffer
}
Run Code Online (Sandbox Code Playgroud)
但body总是与预期的几个字节不同.经过进一步调查后,我发现request假设body是字符串并替换了所有非unicode字节.
我试着补充一下
encoding: 'binary'
Run Code Online (Sandbox Code Playgroud)
到requestSettings,但它并没有帮助.
我怎样才能获得二进制数据?
我正在使用node.js request.js来访问api.我收到了这个错误
[错误:UNABLE_TO_VERIFY_LEAF_SIGNATURE]
我的所有凭据都是准确有效的,服务器也很好.我跟邮递员提出了同样的要求.
request({
"url": domain+"/api/orders/originator/"+id,
"method": "GET",
"headers":{
"X-API-VERSION": 1,
"X-API-KEY": key
},
}, function(err, response, body){
console.log(err);
console.log(response);
console.log(body);
});
Run Code Online (Sandbox Code Playgroud)
此代码只是在可执行脚本ex中运行.node ./run_file.js那是为什么?它需要在服务器上运行吗?
我已经尝试获取我的当前网址UIWebView:webview.request.URL.不幸的是,这NSURL是空的.这里有什么不对吗?我正在使用Xcode 3.2.2 beta 5.
上面的代码应该在UIWebView委托中执行didStartLoad.
我正在使用Python 3.4和IPython,并具有以下代码.我无法从给定的URL读取csv文件:
import pandas as pd
import requests
url="https://github.com/cs109/2014_data/blob/master/countries.csv"
s=requests.get(url).content
c=pd.read_csv(s)
Run Code Online (Sandbox Code Playgroud)
我有以下错误
"预期的文件路径名或类文件对象,得到类型"
我怎样才能解决这个问题?
我有以下代码:
var req = require('request');
req.post('someUrl',
{ form: { username: 'user', password: '', opaque: 'someValue', logintype: '1'}, },
function (e, r, body) {
console.log(body);
});
Run Code Online (Sandbox Code Playgroud)
如何为此设置标题?我需要用户代理,内容类型以及标题中的其他内容:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36',
'Content-Type' : 'application/x-www-form-urlencoded'
};
Run Code Online (Sandbox Code Playgroud)
我尝试过多种方式,但我可以发送标题或表单数据,但都无法发送.
我正在尝试使用PHP和cURL执行DELETE http请求.
我已经阅读过如何在很多地方做到这一点,但似乎没有什么对我有用.
我是这样做的:
public function curl_req($path,$json,$req)
{
$ch = curl_init($this->__url.$path);
$data = json_encode($json);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $req);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));
$result = curl_exec($ch);
$result = json_decode($result);
return $result;
}
Run Code Online (Sandbox Code Playgroud)
然后我继续使用我的功能:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Run Code Online (Sandbox Code Playgroud)
这给了我HTTP内部服务器ERROR.在我的其他函数中使用与GET和POST相同的curl_req方法,一切顺利.
那么我做错了什么?
if-modified-since和if-none-match之间可能有什么区别?我有一种感觉,if-none-match用于文件,而if-modified-since用于页面?