标签: http-get

使用C#的异步WebRequests

嗨,我有一个函数,传递url获取参数到Web服务器上的PHP文件,并等待文件的响应(通常需要10-20秒).我想把它放在一个循环中,因为我必须一次将这些Get请求发送到大约5个不同的php文件但是当我尝试将它添加到循环时,该函数使循环等待,直到文件返回响应才会进行到下一个.

    public string HttpGet(string URI, string Parameters)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI + Parameters);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader resStream = new StreamReader(response.GetResponseStream());
          return resStream.ReadToEnd().Trim();
    }

    private void SendCommand()
    {
        for( int i = 0; i <= 4; i++)
        {
            AddRTB(HttpGet(url, paramater));
        }
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法可以一次发送所有5个请求而无需等待之前完成?(我正在考虑穿线它,但是我以前从未碰过它,因为我不知道从哪里开始.)

c# multithreading http-get

6
推荐指数
2
解决办法
3063
查看次数

使用多个参数在Tornado HttpGet中传递一个参数

我想在Url中传递一个参数(更新我的URL包含的许多参数之一),如下所示:

httpGet.setURI(new URI(url/user?"nickname"="John") 
Run Code Online (Sandbox Code Playgroud)

Python中的ServerSide:

class GetInfo(BaseHandler):
  def Get(self):
        nickname = self.get_argument("nickname")
        gender = self.get_argument("gender")
        logging.info(nickname)
        logging.info(gender)

  application = tornado.web.Application([
  (r"/", MainHandler),
  (r"/user", GetInfo),
  ])
Run Code Online (Sandbox Code Playgroud)

服务器告诉我,我不能这样做,因为缺少参数"性别".我能怎么做?

谢谢

python android http-get tornado http-post

6
推荐指数
1
解决办法
5939
查看次数

具有Nullable类型的方法在使用GET的ASMX Web Service中不起作用

我有一个ASMX Web服务设置为使用HTTP GET方法.采用基本String和Int参数的简单方法正常工作,我可以MyService.asmx/MethodName?Param=Value用XML 调用并获得响应.

但是,当我有一个具有可空Int(即int?)的方法时,我收到此错误:

<方法名称> Web服务方法名称无效.

错误消息令人困惑,因为该方法确实存在,而不是在GET范围内.我认为这是因为可空类型太复杂而无法通过URL传递,但我找不到任何文档或SO帖子.

我很欣赏Lists或自定义类等复杂类型无法使用GET,但我认为可以原生处理一个简单的可空int或可空日期,只需检测它是否从URL中省略.猜猜不是那么简单!

任何建议或解决方法将不胜感激.

蒂姆,谢谢

c# asp.net web-services http-get asmx

6
推荐指数
1
解决办法
4790
查看次数

HTTP状态405 - 此URL不支持HTTP方法GET

下面的代码来自一本书,所以它不会出错.但我不知道如何解决这个错误.当删除方法doGet()时,同样的错误!

"HTTP状态405 - 此URL不支持HTTP方法GET"

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PDFServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override 
protected void doGet(HttpServletRequest request,HttpServletResponse response) 
throws IOException,ServletException{
    this.doPost(request,response);
}
@Override 
protected void doPost(HttpServletRequest request,HttpServletResponse response) 
                                   throws IOException,ServletException{
    response.setContentType("application/pdf");
    ServletOutputStream out=response.getOutputStream();
    File pdf=null;
    BufferedInputStream buf=null;
    try{
        pdf=new File("C:\\Users\\lk\\Desktop\\Desktop\\ example.pdf");
        response.setContentLength((int)pdf.length());
        FileInputStream input=new FileInputStream(pdf);
        buf=new BufferedInputStream(input);
        int readBytes=0;
        while((readBytes=buf.read())!=-1)    out.write(readBytes);
    }catch(IOException e){
        System.out.println("file not found!");
    }finally{
        if(out!=null) …
Run Code Online (Sandbox Code Playgroud)

servlets http-get http-status-code-405

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

数组作为Struts 2中的get参数

我有一个像下面这样的动作

public class CompareAction {

    private Long[] pids;

    public Long[] getPids() {
        return pids;
    }

    public void setPids(Long[] pids) {
        this.pids = pids;
    }

    public String displayComparison() {
        for (Long pid : pids) {
            System.out.println("pid = " + pid);
            System.out.println();
        }
        return "success";
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过在地址栏中键入以下URL来发送数组http://localhost:8080/sm-shop/compare?pids=12,23,34.我想要的输出是

pid = 12

pid = 23

pid = 34
Run Code Online (Sandbox Code Playgroud)

但我得到的是

pid = 122334
Run Code Online (Sandbox Code Playgroud)

我试过谷歌搜索但无法找到如何做到这一点.请帮我弄清楚什么是错的.

struts2 http-get java-ee

6
推荐指数
2
解决办法
2199
查看次数

关于处理gzip响应的HttpClient [Java]有点困惑

我的应用程序向某些api服务发出http请求,该服务返回一个gzip压缩响应.如何确保响应确实是gzip格式?我很困惑为什么在提出请求后我没有解压缩它.

以下是我的代码:

public static String streamToString(InputStream stream) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
    StringBuilder sb = new StringBuilder();
    String line;

    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\n");
        }
    } catch (IOException e) {
        logger.error("Error while streaming to string: {}", e);
    } finally {
        try { stream.close(); } catch (IOException e) { }
    }

    return sb.toString();
}

public static String getResultFromHttpRequest(String url) throws IOException { // add retries, catch all exceptions
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet …
Run Code Online (Sandbox Code Playgroud)

java gzip http-get apache-httpclient-4.x

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

GET /bla - - ms - - 在 NodeJs 控制台中是什么意思?

当我转到/blaNodeJS 应用程序中的页面时,控制台会打印出来

GET /bla - - ms - -
Run Code Online (Sandbox Code Playgroud)

在字(以便于谷歌搜索)dash dash ms dash dash

这是什么意思?

console http-get node.js

6
推荐指数
1
解决办法
3089
查看次数

在node.js中设置HTTP GET中URL参数的默认值

我正在使用node.js Restify。

我有一个 HTTP GET 请求,如下所示;

http://127.0.0.1//read_val?XXX=123&YYY=456&ZZZ=789

在我的处理函数中,要检索URL参数,相关代码将是这样的;

var api_get_func = function (app, url_path) {
    function respond(req, res, next) {
        var XXX= req.query.XXX;
        var YYY = req.query.YYY;
        var ZZZ = req.query.ZZZ;

        //SQL query ...
        return next();
    }

    app.get(url_path, respond);
} 
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个像下面这样的 HTTP GET 函数怎么办?

http://127.0.0.1//read_val?XXX=123&YYY=456

ZZZURL 中未提供该参数。如何修改代码以便ZZZ使用默认值,例如111

javascript http-get url-parameters node.js restify

6
推荐指数
1
解决办法
8037
查看次数

如何使用放心的请求设置cookie?

我需要自动化其余的 API。API 受 Spring 安全保护。

以下是验证代码:

Response response = given().auth()
                    .form(userName, password,   FormAuthConfig.springSecurity().withLoggingEnabled(new LogConfig(captor, true)))
                    .post("/home/xyz.html");

            Assert.assertTrue("Error occurs", response.statusCode() == 302);

            if (response.statusCode() == 302) {
                Cookie cookie = response.getDetailedCookie("JSESSIONID");
                result.actualFieldValue = "User Authenticated: Session ID ->" + cookie.getValue();
                System.out.println("Cookie set : "+cookie.getValue());
                apiTestSessionID = cookie.getValue();
            }
Run Code Online (Sandbox Code Playgroud)

用户登录并返回 302 状态,表示重定向。我找到了 cookie 并设置了一些全局变量。

现在,我使用请求设置 cookie:

RequestSpecification reqSpecification = new RequestSpecBuilder().addCookie("JSESSIONID", AbstractBaseClass.apiTestSessionID).build();

            Map<String, String> parameters = new HashMap<String, String>();
            parameters.put("cstmrID", "000N0961");
            parameters.put("pageNumber", "1");
            parameters.put("pageSize", "10");
            parameters.put("sortColumnName", "FIELD_NM");
            parameters.put("sortDir", "asc");
            parameters.put("filterColumnName1", "");
            parameters.put("filterColumnName2", …
Run Code Online (Sandbox Code Playgroud)

cookies http-get httpclient http-post rest-assured

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

nodejs axios获取请求响应正文被截断/不完整的curl作品

我正在使用静态 URL 查询数据服务。服务器(也是节点)发送大约 955k 的 JSON 数据。

1)我可以CURL数据以获得正确的结果,即它通过JSON.parse()。

2)从节点,我可以 exec("curl ..."); 并且也得到正确的结果。

3)同时使用Request和Axios,我得到了大约600k的数据。精确的字符数每次都会发生变化。

4)使用 Axios,我将数据流式传输到文件中,并获得许多“数据”事件,并将它们连接到文件中。这也是不正确的。

5)它可以在较小的有效载荷下正常工作。

专家联合起来!!我任由你摆布。我将祈求并赞扬并感谢您的帮助。

如果没有您的帮助,我将拥有一个使用 NodeJS 中的 CURL 的生产应用程序,邪恶将会获胜。

此致, TQ White II

更新:有人要求我提供代码片段。这里是:

    const datGetterWORKS_FOR_SMALL_DATA_LOADS=(element, next)=>{
        const localCallback=sendToTransformerCallback(element, next);
        const {url, headers}=networkSpecs.connection;
        axios.get(url + element.urlSegment, {
            method: 'get',
            responseType: 'json',
            headers: headers,
            maxContentLength: 6000000,
        })
          .then(function (response) {
            localCallback('', response, response.data)
          });

    }
Run Code Online (Sandbox Code Playgroud)

请注意,这是给 require('async').each() 进程的。

ajax http-get httpresponse node.js axios

6
推荐指数
0
解决办法
2022
查看次数