标签: http-get

如何通过PHP中的GET方法将HTTP请求发送到另一个网站

我正在开发一个Web应用程序,用于从160by2等网站向移动设备发送短信.

我可以准备HTTP GET请求所需的URL,如SMS Gateway提供商smslane.com提供的API中所述,这里是API链接.

如何从PHP发送HTTP请求?

我为此目的使用了cURL,但没有显示响应.这是我用过的代码,

<?php 
$url="http://smslane.com/vendorsms/pushsms.aspx?user=abc&password=xyz&msisdn=919898123456&sid=WebSMS&msg=Test message from SMSLane&fl=0";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt( $ch, CURLOPT_URL, $url );  
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ( $ch );
echo $content;
?>
Run Code Online (Sandbox Code Playgroud)

fsockopen()没有使用,因为端口号未知,邮寄支持团队的端口号.(如果邀请任何通过GET方法的fsockopen代码:).)

这有什么其他方法吗?

欢迎任何帮助.

提前致谢.

编辑

任何人都可以告诉我除了cURL之外还有其他任何方式发送此HTTP请求,如果可能的话,还可以为此提供代码.

我问这是因为当前的cURL代码花了太多时间执行并在60秒后失败,我在本地系统上的php.ini中将max_execution_time增加到120,即使它对我没有好处:(.

php sms http-get httprequest sms-gateway

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

模型绑定和GET请求?

在html表单中有大量的模型绑定示例,但我想知道它是否可能,如果是这样,如何使用ActionLinks/GET请求的模型绑定.

所以,给出以下模型

public class Lurl
{
  public string Str {get;set;}
  public char Chr {get;set;}
  public double Dbl {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

和以下路线(我不确定这将如何形成;我提出它以显示我希望URL如何呈现属性Str,Chr和Dbl)

routes.MapRoute(
    "LurlRoute",
    "Main/Index/{str}/{chr}/{dbl}",
    new
    {
        controller = "Main",
        action = "Index",
        lurl = (Lurl)null
    }
);
Run Code Online (Sandbox Code Playgroud)

我想在我的Controller中以这种方式使用它

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
  /* snip */
}
Run Code Online (Sandbox Code Playgroud)

这种方式在我的页面中(两种可能的选择;还有更多吗?)

<div class="links">
  <%Html.ActionLink("Link one", "Index", new { lurl = Model })%><br />
  <%Html.ActionLink("Link two", "Index", 
         new { str = Model.Str, chr = Model.Chr, dbl = Model.Dbl })%>
</div>
Run Code Online (Sandbox Code Playgroud)

这可能与模型绑定基础结构有关吗?如果是这样,我的样品需要做些什么才能使它们起作用?

asp.net-mvc http-get model-binding

10
推荐指数
1
解决办法
2766
查看次数

未标记为AcceptVerbs,HttpGet或HttpPost的控制器操作的默认行为是什么?

如果我创建一个控制器动作并且不用它装饰它AcceptVerbs,HttpPost或者HttpGet.什么是默认行为?

该操作是否允许任何访问方法或默认为GET

http http-get http-post acceptverbs asp.net-mvc-2

10
推荐指数
1
解决办法
2871
查看次数

HTTP GET和POST语义和限制

本周早些时候,我不得不做一些感觉违反语义的事情.让我解释.

我正在制作一个简单的AJAX客户端应用程序,它向具有给定数量参数的服务发出请求.由于整个应用程序基本上是只读的,我认为使用HTTP GET是可行的方法.我必须传递的一些参数很简单(例如排序顺序或页码).

但是,其中一个必需的参数可能是可变长度的,这让我很担心.由于我编写了GET请求的查询字符串中的所有参数,因此在我看来,这为请求URL设置了(大约)2000个字符的不必要的上限.无论如何,我不喜欢看到500个字符长的请求URL.

因此,由于POST请求没有这样的限制,我决定切换.但这感觉不对.我的印象是POST表示数据的修改 - 但我将它用于简单的只读请求.

有一个更好的方法吗?要执行GET,有多个参数?我听说过一种方法 - 你自己对参数进行初步POST ,然后执行GET.但是,这种技术还有很多不足之处.

但是从这个具体案例来看,HTTP请求方法的真正语义和局限是什么?为什么GET不支持任何类型的参数有效载荷?使用URL中的查询字符串对我来说几乎感觉像是一个黑客.

http http-get http-post

10
推荐指数
1
解决办法
3789
查看次数

AngularJS - $ http get返回错误,状态为0?

我有一个AngularJS应用中,我试图从服务器获取与$ HTTP GET XML数据说http://example.com/a/b/c/d/getDetails?fname=abc&lname=def(此通过在浏览器中输入链接手动访问时显示XML文件的树结构).

当我运行应用程序时,不会获取该链接中的数据.相反,它显示状态为0的错误.

//url = http://example.com/a/b/c/d/getDetails?fname=abc&lname=def
$http.get(url).success(function (data){
                alert("Success");
                deferred.resolve(data);
            }).error(function (data, status){
                console.log("Error status : " + status);
            });
Run Code Online (Sandbox Code Playgroud)

我不确定为什么$ http.get失败并转到错误函数返回状态0.

但是如果我将URL传递给具有JSON对象的本地服务器,它就可以工作.

是因为我试图从不同的域(CORS问题?)或其他东西访问XML文件?

请帮帮我!

javascript xml http-get cors angularjs

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

HTTP Get:只下载标题?(不支持HEAD)

在我的代码中,我使用一些Http Get请求将一些文件作为流下载.我使用以下代码:

public String getClassName(String url) throws ClientProtocolException, IOException {
        HttpResponse response = sendGetRequestJsonText(url);

        Header[] all = response.getAllHeaders();
        for (Header h : all) {
            System.out.println(h.getName() + ": " + h.getValue());
        }

        Header[] headers = response.getHeaders("Content-Disposition");
        InputStreamParser.convertStreamToString(response.getEntity().getContent());
        String result = "";
        for (Header header : headers) {
            result = header.getValue();
        }
        return result.substring(result.indexOf("''") + "''".length(), result.length()).trim();
    }
Run Code Online (Sandbox Code Playgroud)

但是这会下载响应的完整内容.我想只检索没有内容的http标头.HEAD请求似乎不起作用,因为我得到状态501,没有实现.我怎样才能做到这一点?

java apache http http-get

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

将对象的数组传递给webapi

我有一个.net mvc 4 webapi项目,我试图将一个对象数组传递给我的控制器上的方法.

我在这里找到了一些关于需要设置我的对象属性的例子:param1 = whatever¶m2 = bling¶m3 = blah.

但我不知道如何使用它来传递集合.

这是我的方法签名.注意我用[FromUri]属性修饰了参数.

public List<PhoneResult> GetPhoneNumbersByNumbers([FromUri] PhoneRequest[] id)
{
    List<PhoneResult> prs = new List<PhoneResult>();
    foreach (PhoneRequest pr in id)
    {
        prs.Add(PhoneNumberBL.GetSinglePhoneResult(pr.PhoneNumber, pr.RfiDate, pr.FinDate, pr.State));
    }
    return prs;
}
Run Code Online (Sandbox Code Playgroud)

这是我简单的PhoneRequest对象:

public class PhoneRequest
{
    public string PhoneNumber { get; set; }
    public string RfiDate { get; set; }
    public string FinDate { get; set; }
    public string State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来传递的样本:

http://localhost:3610/api/phonenumber/getphonenumbersbynumbers/
   [{"PhoneNumber":"8016667777","RfiDate":"","FinDate":"2012-02-11","State":"UT"},
    {"PhoneNumber":"8018889999","RfiDate":"2012-12-01","FinDate":"","State":"UT"}]
Run Code Online (Sandbox Code Playgroud)

用这个"坏请求"回来

我也尝试过这个

http://localhost:3610/api/phonenumber/getphonenumbersbynumbers?
    id=[{"PhoneNumber":"8016667777","RfiDate":"","FinDate":"2012-02-11","State":"UT"}, …
Run Code Online (Sandbox Code Playgroud)

c# http-get asp.net-web-api

9
推荐指数
2
解决办法
8878
查看次数

如何在AngularJS中的http.get中进行重定向?

我正在建立一个教练网站,通过使用社交媒体帮助人们过上更健康的生活.目前我正在使用前端AngularJS的ExpressJS服务器中的OAuth访问Twitter.

来自AngularJS网站:

200到299之间的响应状态代码被视为成功状态,将导致调用成功回调.请注意,如果响应是重定向,则XMLHttpRequest将透明地跟随它,这意味着不会为此类响应调用错误回调.

我的服务器的完整代码可以在github上的web.jstwitter.js中找到,但这是调用者:

function LoginCtrl($scope, $http, $location) {
  $scope.welcome = 'Sign in with Twitter';
  $http.defaults.useXDomain = true;    
  $scope.submit = function() {    
    $http({method: 'GET', url: '/sessions/connect'}).
    success(function(data, status) {
        $scope.welcome = data;
    });
  };
}
Run Code Online (Sandbox Code Playgroud)

这是web.js中的被调用者:

app.get('/sessions/connect', function(req, res){
  consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
    if (error) {
      res.send("Error getting OAuth request token : " + sys.inspect(error), 500);
    } else {  
      req.session.oauthRequestToken = oauthToken;
      req.session.oauthRequestTokenSecret = oauthTokenSecret;
      res.redirect("https://api.twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);      
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

如果我查一下tcpdump(对不起我是老式的),我看到: …

redirect http-get angularjs

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

在angularjs中为此HTTP GET添加HTTP基本身份验证

我有一个现有的angularjs代码,它可以生成HTTP GET.下面提取的是控制器内部的一些相关代码.

    .controller('imptViewCtrl', ['$scope', '$http', 
        function ($scope, $http, ) {
                    var url = $configuration.webroot + '/impt/list?list=testlist';
                    $http.get(url).then(function (response) {
                               tableData = response.data;
                               });
        }]);
Run Code Online (Sandbox Code Playgroud)

我想将HTTP基本身份验证添加到HTTP GET.用户名是foo,密码是bar.如何才能做到这一点?

javascript http http-get basic-authentication angularjs

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

带正文的 REST API HTTP GET

我实际上正在重写我们工作中的一些 API(在 ASP.Net Core 3.1 中),并尝试使它们成为 RESTFull。我遇到一些方法,应该使用 HTTP GET 调用它,因为它用于检索一些数据,但参数包装在一个相当大的 DTO 中。

所以我问自己如何应对:

  • 让它把 DTO 放在 URL 中,但是大小有什么限制呢?
  • 将正文放入 HTTP GET 请求中。我做了一些搜索,但发现的结果很旧。显然这是允许的,但当时不鼓励这样做
  • 使用 HTTP Post,但它不是 REST,因为应该使用 POST 来创建数据

我认为更好的解决方案是将 HTTP Get 与 body 一起使用(根据这篇文章https://thecodebuzz.com/http-get-delete-request-body-guidelines/这是可能的)

有人遇到同样的问题吗?现在的指导方针是什么?

谢谢你的想法

api rest http-get

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