标签: http-request

urllib2 - 发布请求

我尝试用urllib2执行一个简单的POST请求.但是服务器响应表明它收到一个简单的GET.我检查了传出请求的类型,但它设置为POST.
为了检查服务器是否像我期望的那样,我尝试使用连接到url的(以前的POST-)数据执行GET请求.这给了我预期的答案.
有人知道我误解了什么吗?

def connect(self):
    url = 'http://www.mitfahrgelegenheit.de/mitfahrzentrale/Dresden/Potsdam.html/'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    header = { 'User-Agent' : user_agent }

    values = {
      'city_from' : 69,
      'radius_from' : 0,
      'city_to' : 263,
      'radius_to' : 0,
      'date' : 'date',
      'day' : 5,
      'month' : 03,
      'year' : 2012,
      'tolerance' : 0
    }

    data = urllib.urlencode(values)
    # req = urllib2.Request(url+data, None, header) # GET works fine
    req = urllib2.Request(url, data, header)  # POST request doesn't not work

    self.response = …
Run Code Online (Sandbox Code Playgroud)

python urllib2 http-request

13
推荐指数
2
解决办法
4万
查看次数

你怎么能让redirect_to使用不同的HTTP请求?

在我的一个控制器操作结束时,我需要重定向到只接受put请求的页面.我一直试图弄清楚如何让redirect_to使用put请求但没有成功.

这可能吗?或者还有另一种方法来实现这一目标吗?

redirect ruby-on-rails http-request

12
推荐指数
2
解决办法
5937
查看次数

HTTP请求和Apache模块:Creative攻击向量

这里有一点非正统的问题:

我目前正试图用一些自定义模块打破Apache.

产生测试的是Apache在内部将其认为太大的请求(例如1 MB垃圾)转发给适当连接的模块,迫使他们处理垃圾数据 - 并且自定义模块中缺乏处理导致Apache完整火上浇油 哦,哎哟,哎哟.

幸运的是,这个特定的问题已得到解决,但问题是否可能存在其他类似的漏洞.

现在我有一个工具供我使用,它允许我向服务器发送原始HTTP请求(或者更确切地说,原始数据通过已建立的TCP连接,如果它遵循一个形式,可以解释为HTTP请求,例如"GET" ......")我想要提出其他想法.(像Slowloris和Nkiller2这样的TCP级攻击目前不是我的重点.)

有没有人有一些好主意如何将服务器的自定义模块混淆到服务器自焚的程度?

  • 破了UTF-8?(虽然我怀疑Apache关心编码 - 我想它只是杂乱的原始字节.)
  • 东西只是勉强太长,接着是0字节,接着是垃圾?
  • 等等

我不认为自己是一个非常好的测试人员(我这样做是因为必要和缺乏人力;我很遗憾甚至没有基本的掌握Apache内部能够帮助我),这就是为什么我'希望有一个有见地的回应或两三个.也许你们有些人为自己的项目做过类似的测试?

(如果stackoverflow不是这个问题的正确位置,我道歉.不知道还能把它放在哪里.)

apache security apache-modules http-request

12
推荐指数
2
解决办法
1442
查看次数

有没有办法将Ruby Net :: HTTP请求附加到特定的IP地址/网络接口?

我正在寻找一种方法,使用标准Net :: HTTP库为每个GET请求使用不同的IP地址.服务器有5个IP地址,并假设某些API在达到每个IP的请求限制时阻止访问.所以,只有这样做 - 使用另一台服务器.我在ruby docs中找不到任何关于它的东西.

例如,curl允许您将其附加到特定的IP地址(在PHP中):

$req = curl_init($url)
curl_setopt($req, CURLOPT_INTERFACE, 'ip.address.goes.here';
$result = curl_exec($req);
Run Code Online (Sandbox Code Playgroud)

有没有办法用Net :: HTTP库做到这一点?作为替代 - CURB(红宝石卷曲绑定).但这将是我将尝试的最后一件事.

建议/想法?

PS使用CURB的解决方案(带有脏测试,ip被替换):

require 'rubygems'
require 'curb'

ip_addresses = [
  '1.1.1.1',
  '2.2.2.2',
  '3.3.3.3',
  '4.4.4.4',
  '5.5.5.5'
]

ip_addresses.each do |address|
  url = 'http://www.ip-adress.com/'
  c = Curl::Easy.new(url)
  c.interface = address
  c.perform
  ip = c.body_str.scan(/<h2>My IP address is: ([\d\.]{1,})<\/h2>/).first
  puts "for #{address} got response: #{ip}"
end
Run Code Online (Sandbox Code Playgroud)

ruby http-request

12
推荐指数
2
解决办法
2876
查看次数

Django:从QueryDict中读取JSON对象的数组

如何通过JS和服务器端的AJAX调用传递复合JSON结构,在python中将其读作"非常相似"的数据结构?

我知道可以使用json格式(simplejson等),但我不知何故觉得QueryDict本身在我的情况下格式错误或重新格式化?

例:

通过AJAX向Django视图传递JSON对象[{"id":1},{"id":2},{"id":3}]的数组时,QueryDict的格式为:

POST:<QueryDict: {u'json_data[0][id]': [u'1'], u'type': [u'clone'], 
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'], 
u'json_data[1][id]': [u'2'], u'json_data[2][id]': [u'3']}>
Run Code Online (Sandbox Code Playgroud)

我如何迭代json_data?

我希望得到这样的东西:

POST:<QueryDict: {u'json_data': [{u'id': [u'1']}, {u'id': [u'2']}, {u'id': [u'3']}]},
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'], u'type': [u'clone']>
Run Code Online (Sandbox Code Playgroud)

这样我就可以将QueryDict作为字典访问并将json_data作为列表检索并按特定顺序处理它:可能只是按顺序列表顺序遍历它们.就像是:

ret = request.POST
for item in ret['json_data']:
    process(item['id'])
Run Code Online (Sandbox Code Playgroud)

实际上,进入process()的值可能是另一个键值对的字典,而不仅仅是一个数字(1,2,3等)

使用Javascript:

var test = [{"id": 1},{"id": 2},{"id": 3}];
$.post(
    "/insert_tc",
    {
      json_data: test,
      "type": 'clone',
      "csrfmiddlewaretoken": $csrf_token
    },  
    function(json) {
        //CALLBACK
    },
    "json"
);  
Run Code Online (Sandbox Code Playgroud)

views.py:

def insert_tc(request):
    if request.method == 'POST':       
    ret = request.POST
    type = ret['type']
    list = ret.getlist(ret)
Run Code Online (Sandbox Code Playgroud)

但是list返回空[] …

javascript django ajax request http-request

12
推荐指数
2
解决办法
9046
查看次数

HTTP流水线请求文本示例

下面是一个示例HTTP 1.1调用,请求单个页面:

GET /jq.js HTTP/1.1
Host: 127.0.0.1
Accept: */*
Run Code Online (Sandbox Code Playgroud)

我理解使用HTTP Pipelining,可以在不中断连接的情况下发送多个请求.

  • 有人可以发布一些文本示例,说明如何将此请求发送到服务器,我希望能够通过命令行或PHP套接字执行此操作.
  • 是否还需要在Web服务器上启用对流水线的支持?
  • 默认情况下是否由主要Web服务器(apache,nginx)支持流水线操作,或者是否需要启用流水线操作
  • apache php-socket http-1.1 http-request

    12
    推荐指数
    1
    解决办法
    1万
    查看次数

    从Node.js中的不同IP发送HTTP请求

    有没有办法使用与Node.js中的IP不同的IP发送HTTP请求?

    我想从之前选择的IP发送请求,而不是从服务器的IP或我的计算机的IP发送请求.

    我知道Tor Project会进行这种操作,但是我找不到Tor用来做这些东西的库.

    是否有任何API或Node.js模块用于处理Node.js中的这种私人浏览?

    javascript tor node.js http-request

    12
    推荐指数
    1
    解决办法
    1万
    查看次数

    通过Python请求模块发出HTTP请求不能通过curl的代理工作吗?为什么?

    使用此curl命令,我能够从Bash中获取我正在寻找的响应

    curl -v -u z:secret_key --proxy http://proxy.net:80  \
    -H "Content-Type: application/json" https://service.com/data.json
    
    Run Code Online (Sandbox Code Playgroud)

    我已经在使用Requests模块的代理上看到过这篇文章

    它帮助我在Python中制定我的代码,但我需要通过代理提出请求.但是,即使在提供适当的代理时,它也无法正常工作.也许我只是没有看到什么?

    >>> requests.request('GET', 'https://service.com/data.json', \
    >>> headers={'Content-Type':'application/json'}, \ 
    >>> proxies = {'http' : "http://proxy.net:80",'https':'http://proxy.net:80'}, \
    >>> auth=('z', 'secret_key'))
    
    Run Code Online (Sandbox Code Playgroud)

    此外,在同一个python控制台上,我可以使用urllib发出请求,使其成功.

    >>> import urllib
    >>> urllib.urlopen("http://www.httpbin.org").read()
    ---results---
    
    Run Code Online (Sandbox Code Playgroud)

    即使只在非https地址上尝试请求也无法正常工作.

    >>> requests.get('http://www.httpbin.org')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/Library/Python/2.6/site-packages/requests/api.py", line 79, in get
       return request('get', url, **kwargs)
    File "/Library/Python/2.6/site-packages/requests/api.py", line 66, in request
        prefetch=prefetch
    File "/Library/Python/2.6/site-packages/requests/sessions.py", line 191, in request
        r.send(prefetch=prefetch)
    File "/Library/Python/2.6/site-packages/requests/models.py", line 454, …
    Run Code Online (Sandbox Code Playgroud)

    python proxy get http-request python-requests

    11
    推荐指数
    1
    解决办法
    1万
    查看次数

    服务器415响应代码

    我正在使用Jetty Web服务器和Jersey进行REST处理.

    我定义了:

    @POST
    @Path("/sendMessage")
    @Consumes ({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
    public Response sendMessage(@Context final UriInfo uriInfo) 
    {
        logger.debug("sendMessage:");
        System.out.println("Received POST!");
        return Response.status(Response.Status.OK).build();
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    但是,当我发送http请求时http://localhost:8080/hqsim/sendMessage,服务器返回415代码.

    这就像是不允许通话.我该如何解决这个错误?

    java jetty jax-rs jersey http-request

    11
    推荐指数
    1
    解决办法
    4万
    查看次数

    未知编码:Python请求中的idna

    我正在使用Python请求.一切都很好但今天我得到了这个奇怪的错误:

    [...]
    File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/requests/models.py", line 321, in full_url
        netloc = netloc.encode('idna').decode('utf-8')
    LookupError: unknown encoding: idna
    
    Run Code Online (Sandbox Code Playgroud)

    什么想法可能是错的?我正在使用来自brew的Python 2.7.2.

    python character-encoding http-request python-requests

    11
    推荐指数
    1
    解决办法
    1万
    查看次数