GVKun编程网logo

如何使用Django发送POST请求?(django发送http请求)

12

本文将分享如何使用Django发送POST请求?的详细内容,并且还将对django发送http请求进行详尽解释,此外,我们还将为大家带来关于ajax把get请求改为post请求(django)、Aja

本文将分享如何使用Django发送POST请求?的详细内容,并且还将对django发送http请求进行详尽解释,此外,我们还将为大家带来关于ajax 把get请求改为post请求(django)、Ajax通过POST请求发送空列表Django、android – 如何使用google api客户端库为java发送带有JSON数据的POST请求?、django – CSRF验证失败.请求中止.当我发送POST请求时的相关知识,希望对你有所帮助。

本文目录一览:

如何使用Django发送POST请求?(django发送http请求)

如何使用Django发送POST请求?(django发送http请求)

我不想使用html文件,但只有django才需要发出POST请求。

就像urllib2发送get请求一样。

答案1

小编典典

结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式:

post_data = [(''name'',''Gladys''),]     # a sequence of two element tuplesresult = urllib2.urlopen(''http://example.com'', urllib.urlencode(post_data))content = result.read()

urlopen()是用于打开URL的方法。
urlencode()将参数转换为百分比编码的字符串。

ajax 把get请求改为post请求(django)

ajax 把get请求改为post请求(django)

以下代码可以正常运行。(index.js文件)

setInterval(function () {
       console.log( "kaishi" + timeText())
  $.ajax(
    {
        type:'get',  // 不指定默认就是get,都是小写
        success:function (response) {
        console.log(response)
            $('#picture').attr('src', response.imgPath) 	 //修改<img>标签的src值
            $('#number').text(response.result)		//修改id="number"标签的内容
            }
        }
  )
},10000)	//10s

​ 我希望与页面加载的同时,此代码就开始执行,并且每隔10s执行一次。

​ 为了和首次打开页面区分,我把ajax请求的类型改为post,其他不变

type:'post'

会报如下错误(ajax发送的请求为我的首页):

Forbidden (CSRF token missing.): /index/

解决办法:

  • 第一步 index.html : 引用query.cookie.js插件(建议将此文件下载到本地,不然只能在联网下使用,可以确定此方法可行后再下载)
<script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
  • 第二步 index.js : 在success函数前添加请求头 headers: {“X-CSrftoken”: $.cookie(‘csrftoken’)}
setInterval(function () {
      console.log( "kaishi" + timeText())
 $.ajax(
   {
       type:'post',  // 不指定默认就是get,都是小写
       //以下是添加的代码
       headers: {"X-CSrftoken": $.cookie('csrftoken')},
       //以上是添加的代码
       success:function (response) {
       console.log(response)
           $('#picture').attr('src', response.imgPath) 	 //修改<img>标签的src值
           $('#number').text(response.result)		//修改id="number"标签的内容
           }
       }
 )
},10000)	//10s

过程中遇到的报错:

  • 第一种 : 在浏览器查看控制台报错:

    在这里插入图片描述


    原因 : cookie的问题,需要在index.html文件中引用query.cookie.js插件
<script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
  • 第二种 : 终端报错:
Forbidden (CSRF token missing.): /index/

原因:没有加入这句代码

headers: {"X-CSrftoken": $.cookie('csrftoken')},

Ajax通过POST请求发送空列表Django

Ajax通过POST请求发送空列表Django

您可以将result视图设为仅接受POST请求。

您可以使用@require_GET

@require_GET
def result(request):
    ...

或仅在您的if中添加一个result语句:

def result(request):
    if request.method == 'POST':
        # your code

对于错误的请求,您还可以返回错误:

def result(request):
    if request.method != "GET":
        return HttpResponseBadRequest("Expecting GET request")

android – 如何使用google api客户端库为java发送带有JSON数据的POST请求?

android – 如何使用google api客户端库为java发送带有JSON数据的POST请求?

我正在尝试使用Google Api客户端库发送帖子请求,但无法成功.

这是我正在使用的片段

UrlEncodedContent urlEncodedContent = new UrlEncodedContent(paramMap);   //paramMap contains email and password keypairs
HttpRequest request = httpRequestFactory.buildPostRequest(new GenericUrl(Constants.PHP_SERVICE_BASE_PATH + mPath),urlEncodedContent);
String response = request.execute().parseAsstring();

我没有得到预期的回应.我认为这是因为邮政参数,即电子邮件和密码没有以正确的格式发送.我需要用JSON发送它们.

注意:我没有将该库用于Google Web服务.

解决方法

我正在使用Map作为JSON的输入.映射是post请求使用的JsonHttpContent的输入.

Map<String,String> json = new HashMap<String,String>();
json.put("lat",Double.toString(location.getLatitude()));
json.put("lng",Double.toString(location.getLongitude()));
final HttpContent content = new JsonHttpContent(new JacksonFactory(),json);
final HttpRequest request = getHttpRequestFactory().buildPostRequest(new GenericUrl(url),content);

django – CSRF验证失败.请求中止.当我发送POST请求时

django – CSRF验证失败.请求中止.当我发送POST请求时

我从 Android应用程序发送POST请求到我的服务器,但我收到此错误:

enter image description here

POST看起来像:
http://example/my_page_url/1000
1000是一个ID.

这是我的观点方法:

def inventory(request,cross_id):

    text_file = open("test.txt","w")
    text_file.write('POST Received')

    text_file.write(cross_id.__str__())
    text_file.close()

    return render(request,'Inventory.html',{})

我的模板代码:

<form action='' method="POST">

     <button type="submit" id="btn_save" name="btn_save">Save</button>

    {% csrf_token %}

</form>

实际上,我并不需要调用模板,因为我只想在服务器上执行某些操作.但我现在调用模板只是为了防止任何错误.

我已经阅读了相同问题的其他答案,但是他们都错过了模板中的CSRF令牌或者其他方法,但我相信这里的情况有所不同.

解决方法

您需要将X-CSrftoken标头添加到所有POST请求中.

您可以从名为csrftoken的cookie中获取此标头的相应值.

要在Postman中测试它,您需要启用Interceptor插件(右上角).

安装完成后,向/ admin / login /发出GET请求(确保从浏览器中的站点注销).在cookies部分中,您应该看到名为csrftoken的cookie,复制其值.

现在,将请求类型设置为POST以获取相同的URL(/ admin / login),使用您之前复制的值添加名为X-CSrftoken的标头.在Body部分中设置用户名和密码字段,然后点击发送.

X-CSRFToken

如果您的POST不需要身份验证,则可以使用早期GET请求中的csrftoken.

我们今天的关于如何使用Django发送POST请求?django发送http请求的分享就到这里,谢谢您的阅读,如果想了解更多关于ajax 把get请求改为post请求(django)、Ajax通过POST请求发送空列表Django、android – 如何使用google api客户端库为java发送带有JSON数据的POST请求?、django – CSRF验证失败.请求中止.当我发送POST请求时的相关信息,可以在本站进行搜索。

本文标签: