标签: query-string

使用查询参数处理 Spring-boot 过滤器

在 REST 端点中,我想接收过滤器作为查询参数。每个过滤器都定义在以逗号分隔的键值对中,如下所示:

www.example.com/things?filter=key:value,key2:value2,key3:value3

这个例子意味着我想要获取的事物列表必须包含keyas valueaskey2asvalue2 key3value3

在此端点中,我可以接收多个过滤器,如下所示:

www.example.com/things?filter=key:value&filter=key2:value2,key3:value3

这意味着事物列表必须具有keyasvalue ( key2asvalue2key3as value3)

在 spring-boot 中,接收多个同名查询参数的方法是在控制器中定义一个@RequestParam("filter") String[] filters. 但问题是:每当我只发送一个filter查询参数时,我都会得到一个由每个键对值形成的字符串数组。如果我发送多个filter,我将得到一个包含每个过滤器的数组(如预期)。

这意味着对于第一个示例,每个密钥对都会有一个大小为 3 的数组,而在第二个示例中,我会收到一个大小为 2 的数组。

我需要的是,每当我只发送一个filter查询参数时,@RequestParam标签都会传递一个大小为 1 的数组,其中包含稍后要解析的整个字符串。有办法实现这一点吗?

java query-string spring-boot

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

response.get('X-Frame-Options') 不是 None :当传递两个以上查询参数时

我正在尝试通过 DRF 进行 GET API 调用。

我的网址如下所示: http://127.0.0.1: 8000/patha/pathb/pathc/pathd/cd7701b?name=IT&size=20&workflow=rv

但它产生了一个错误:

   if response.get('X-Frame-Options') is not None:
   AttributeError: 'NoneType' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)

但是当我只是发送两个查询参数时:

  http://127.0.0.1:8000/patha/pathb/pathc/pathd/cd007b?name=IT&size=20
Run Code Online (Sandbox Code Playgroud)

或者,这三个参数中的两个参数的任意组合将到达视图方法。

我的视图方法如下所示:

 class MyRtList(generics.ListAPIView, customMixin):
 ...
 # Here I'd like to use all three inputs:
 # cd007b
 # `name` and `size`
Run Code Online (Sandbox Code Playgroud)

和 urls.py:

    url(r'patha/pathb/pathc/(?P<name>[^/]+)?$',views.MyRtList.as_view()),    
Run Code Online (Sandbox Code Playgroud)

我正在经历医生。使用 param1 和 param2 显示的示例。最多可以使用两个查询参数吗?是否禁止使用像 cd007b 和查询参数这样的混合数据?因为它会被 3 个参数卡住,但不会被 2 个参数卡住。

哪里出了问题?

query-string x-frame-options django-rest-framework

5
推荐指数
1
解决办法
5574
查看次数

当我们可以查询 REST 中的特定字段时,为什么我们需要 GraphQL?

GraphQL 的主要目标是解决许多 REST API 面临的过度获取问题,它通过仅查询查询中提到的特定字段来实现这一点。

但在 REST API 中,如果我们使用fields参数,它也会做同样的事情。那么如果 REST 可以解决这样的过度获取问题,为什么还需要 GraphQL呢?

rest query-string graphql

5
推荐指数
1
解决办法
784
查看次数

如何在 actix-web 中接收多个同名查询参数?

actix-web 文档中仅提供了如何接收唯一命名的查询参数的示例。

但是如何接收多个同名的查询参数呢?例如:

http://localhost:8088/test?id=1&id=2&id=3
Run Code Online (Sandbox Code Playgroud)

我必须如何更改以下代码才能接受多个 id 以及如何读取它们?

http://localhost:8088/test?id=1&id=2&id=3
Run Code Online (Sandbox Code Playgroud)

query-string rust actix-web

5
推荐指数
1
解决办法
2634
查看次数

您可以使用 htaccess 过滤/检查 POST 方法/请求吗?

您可以使用 htaccess 过滤/检查 POST 方法/请求吗?例如,如果您想使用$_GEThtaccess 过滤变量以在模式匹配时进行重定向,则它将如下所示:

RewriteCond %{QUERY_STRING} <script> [NC]
RewriteRule .*$ /mylogPage.php? [L,R=301]
Run Code Online (Sandbox Code Playgroud)

你能对 $_POST 变量做类似的过滤吗?

我尝试了很多变体,包括尝试mod_security通过 htaccess 进行修改。我假设在 htaccess 中它与以下内容有关:

RewriteCond %{REQUEST_METHOD} POST.
Run Code Online (Sandbox Code Playgroud)

我努力了

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} <script> [NC]
RewriteRule .*$ /mylogPage.php? [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但它只是重定向页面

如果这应该通过 mod_security 完成,那么可以通过 htaccess 编辑 mod 安全性吗?语法是什么样的?我尝试过但没有成功。

.htaccess query-string

5
推荐指数
1
解决办法
307
查看次数

使用 next/router 添加具有相同键的多个查询参数

我正在使用 Next.js 应用程序中的查询参数过滤来自 API 的结果。我想使用useRouter()相同的键推送多个不同的过滤器,因此我的查询参数可能如下所示:

?page=1&skill=html&skill=css&skill=js
Run Code Online (Sandbox Code Playgroud)

我可以将每个参数传递给我的 API 请求。现在,当我尝试添加技能参数时,我正在使用router.push它,如下所示:

const router = useRouter();

const addFilter = (skill: string) => router.push({ query: { ...router.query, skill: skill.toLowerCase() } });
Run Code Online (Sandbox Code Playgroud)

但显然它会覆盖之前的技能,所以我只能在 URL 中获得其中一个技能。如何使用相同的键添加其他查询参数,最好使用useRouter()or next/router

query-string reactjs next.js next-router

5
推荐指数
1
解决办法
6356
查看次数

如何在 React 中从 URL 获取查询参数

我尝试通过版本 6 中的 React router dom 文档以这种方式从 URL 获取查询参数

import * as React from "react";
import { useSearchParams } from "react-router-dom";

function App() {
  let [searchParams, setSearchParams] = useSearchParams();

  function handleSubmit(event) {
    event.preventDefault();
    let params = serializeFormQuery(event.target);
    setSearchParams(params);
  }

  return (
    <div>
      <form onSubmit={handleSubmit}>{/* ... */}</form>
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

但它返回了我空对象

我尝试了其他方法

import React from "react";
import ReactDOM from "react-dom";
import { Link, useLocation, BrowserRouter as Router } from "react-router-dom";
function User({ name }) {
  return <div>{name}</div>;
}
function useQuery() { …
Run Code Online (Sandbox Code Playgroud)

url query-string reactjs react-router-dom

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

ASP.NET:URI处理

我正在写一个方法,让我们说,给予1hello应该返回http://something.com/?something=1&hello=en.

可以很容易地将它们组合在一起,但ASP.NET 3.5为构建URI提供了哪些抽象功能?我喜欢这样的东西:

URI uri = new URI("~/Hello.aspx"); // E.g. ResolveUrl is used here
uri.QueryString.Set("something", "1");
uri.QueryString.Set("hello", "en");
return uri.ToString(); // /Hello.aspx?something=1&hello=en
Run Code Online (Sandbox Code Playgroud)

我发现这个Uri课程听起来非常相关,但我找不到任何能真正完成上述课程的课程.有任何想法吗?

(对于它的价值,参数的顺序对我来说无关紧要.)

asp.net uri query-string

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

包含的文件可以读取父$ _GET参数吗?

在我的php页面中,我收到了一堆get参数.我包含的文件也可以读取这些吗?

php include query-string

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

jQuery发布到asp.net页面错误:此请求的查询字符串的长度超过配置的maxQueryStringLength值

我试图用javascript将一个文本编辑器的内容发布到一个asp.net页面(asp.net 4.0).我的asp.net页面将收到它并保存到db.I附加文本编辑器的内容在查询字符串中.当内容很大时,我收到以下异常

The length of the query string for this request exceeds the configured maxQueryStringLength value.
Run Code Online (Sandbox Code Playgroud)

它适用于小内容.但是当内容很大时,它会抛出一个错误

这是我的javascript代码

  var content1 = $("#txtAdminLabelEdit"+id).val();
  content = encodeURIComponent(content1);
  var url = "handlers/adminhandler.aspx?mode=savecontent&page=home&lid=1&vid=2&ltxt=" + content;

            $.post(url, function (data) {
                if (data == "yes") {
                 //do something
                 }
            });
Run Code Online (Sandbox Code Playgroud)

asp.net jquery post query-string

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