标签: http-post

如何在java中发送Https Post请求

我想从java代码登录应用程序.这是我的代码......

String httpsURL = "https://www.abcd.com/auth/login/";

String query = "email="+URLEncoder.encode("abc@xyz.com","UTF-8"); 
query += "&";
query += "password="+URLEncoder.encode("abcd","UTF-8") ;

URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
con.setRequestMethod("POST");

con.setRequestProperty("Content-length", String.valueOf(query.length())); 
con.setRequestProperty("Content-Type","application/x-www- form-urlencoded"); 
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)"); 
con.setDoOutput(true); 
con.setDoInput(true); 

DataOutputStream output = new DataOutputStream(con.getOutputStream());  


output.writeBytes(query);

output.close();

DataInputStream input = new DataInputStream( con.getInputStream() ); 



for( int c = input.read(); c != -1; c = input.read() ) 
System.out.print( (char)c ); 
input.close(); 

System.out.println("Resp Code:"+con .getResponseCode()); 
System.out.println("Resp Message:"+ con .getResponseMessage()); 
Run Code Online (Sandbox Code Playgroud)

但我无法登录,它只返回登录页面.

如果有人可以,请帮助我理解我做错了什么.

java http-post httpurlconnection

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

如何将纯文本发布到ASP.NET Web API端点?

我有一个ASP.NET Web API端点,其控制器操作定义如下:

[HttpPost]
public HttpResponseMessage Post([FromBody] object text)
Run Code Online (Sandbox Code Playgroud)

如果我的帖子请求正文包含纯文本(即不应该被解释为json,xml或任何其他特殊格式),那么我认为我可以在我的请求中包含以下标题:

Content-Type: text/plain
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

No MediaTypeFormatter is available to read an object of type 'Object' from content with media type 'text/plain'.
Run Code Online (Sandbox Code Playgroud)

如果我将控制器操作方法签名更改为:

[HttpPost]
public HttpResponseMessage Post([FromBody] string text)
Run Code Online (Sandbox Code Playgroud)

我得到一个略有不同的错误消息:

No MediaTypeFormatter is available to read an object of type 'String' from content with media type 'text/plain'.
Run Code Online (Sandbox Code Playgroud)

text content-type http-post http-request asp.net-web-api

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

如果为空,则如何阻止提交HTML表单的输入字段值

我有输入字段的HTML表单.一些输入可以为空,即值为"".

<input name="commentary" value="">

刚才,当commentary没有设置字段时,它会出现在提交网址中:&commentary=

如何从提交URL中删除空输入,因此当commentary输入为空时,它根本不会被传递.

非常感谢你.

更新

感谢minitech的回答,我可以解决它.JavaScript代码如下:

$('#my-form-id').submit(function() {
  var commentary = $('#commentary').val(); 
  if (commentary === undefined || commentary === "") {
    $('#commentary').attr('name', 'empty_commentary');
  } else {
    $('#commentary').attr('name', 'commentary');        
  }
});
Run Code Online (Sandbox Code Playgroud)

我使用"empty_"作为前缀字段名称的唯一原因是IE无论如何都在URL中传递空名称.

html javascript forms http-post

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

发布后查看不更新

我有一个控制器方法CreateOrUpdate,这个方法应该将汽车保存到数据库然后正常返回.

public ActionResult CreateOrUpdate(int ID = 0)
{
    Car car = new Car(ID);
} 

[HttpPost]
public ActionResult CreateOrUpdate(Car car)
{
       car.Save();
       return View(car);
}
Run Code Online (Sandbox Code Playgroud)

在theCar.Save()方法中,我设置了汽车的id,在汽车保存后,无论数据库中的id是什么(当我使用SCOPE_IDENTITY()进行插入时,save方法运行良好,如果我在调用Save()之后调试并观察汽车的值,id是正确的.但是当渲染View时,视图中的ID为0.

谁能帮助我,告诉我为什么会这样.我不想在HTTP POST方法中更改视图的模型吗?如果保存成功,我应该重定向到原始的CreateOrUpdate()方法.

c# http-post asp.net-mvc-3

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

在Android中使用带有post参数的HttpClient和HttpPost

我正在编写一个Android应用程序的代码,该应用程序应该获取数据,将其打包为Json并将其发布到Web服务器,而后者应该使用json进行响应.

使用GET请求工作正常,但由于某些原因使用POST,所有数据似乎都被剥离,服务器没有收到任何内容.

这是代码的片段:

HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);        
DefaultHttpClient httpClient = new DefaultHttpClient(params);
BasicCookieStore cookieStore = new BasicCookieStore();
httpClient.setCookieStore(cookieStore);

String uri = JSON_ADDRESS;
String result = "";
String username = "user";
String apikey = "something";
String contentType = "application/json";

JSONObject jsonObj = new JSONObject();

try {
    jsonObj.put("username", username);
    jsonObj.put("apikey", apikey);
} catch (JSONException e) {
    Log.e(TAG, "JSONException: " + e);
}

HttpPost httpPost = new HttpPost(uri);
List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("json", jsonObj.toString()));
HttpGet httpGet …
Run Code Online (Sandbox Code Playgroud)

java android json httpclient http-post

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

发布包含多个部分视图的表单

我目前正在尝试发布一个由两个强类型视图组成的表单.这个问题很相似,但没有答案:

具有多个强类型部分视图的MVC 3剃刀形式的帖子没有绑定

当我提交表单时,提交给控制器的模型始终为null.我花了几个小时试图让它发挥作用.这似乎应该很简单.我在这里错过了什么吗?我不需要做ajax只需要能够发布到控制器并呈现一个新页面.

谢谢

这是我的观看代码:

<div>
    @using (Html.BeginForm("TransactionReport", "Reports", FormMethod.Post, new {id="report_request"}))
    {
        ViewContext.FormContext.ValidationSummaryId = "valSumId";
        @Html.ValidationSummary(false, "Please fix these error(s) and try again.", new Dictionary<string, object> { { "id", "valSumId" } });
        @Html.Partial("_ReportOptions", Model.ReportOptions);
        @Html.Partial("_TransactionSearchFields", new ViewDataDictionary(viewData) { Model = Model.SearchCriteria });
    }
Run Code Online (Sandbox Code Playgroud)

这是控制器中的代码:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TransactionReport(TransactionReportRequest reportRequest)
{
    var reportInfo = new List<TransactionReportItem>();

    if (ModelState.IsValid)
    {
        var reportData = _reportDataService.GetReportData(Search.MapToDomainSearchCriteria(reportRequest.SearchCriteria));
        if (reportData!=null)
        {
            reportInfo = reportData.ToList();
        }
        return View(reportInfo);
    }
    return View(reportInfo);
}
Run Code Online (Sandbox Code Playgroud)

部分视图本身非常无关紧要,因为他们正在做的就是参与并展示他们的模型.

asp.net-mvc partial-views http-post razor asp.net-mvc-3

33
推荐指数
3
解决办法
5万
查看次数

如何使用node.js发布到请求

我试图将一些json发布到URL.我在stackoverflow上看到了关于这个的各种其他问题,但它们似乎都没有明确或有效.这是我得到了多远,我在api文档上修改了示例:

var http = require('http');
var google = http.createClient(80, 'server');
var request = google.request('POST', '/get_stuff',
  {'host': 'sever',  'content-type': 'application/json'});
request.write(JSON.stringify(some_json),encoding='utf8'); //possibly need to escape as well? 
request.end();
request.on('response', function (response) {
  console.log('STATUS: ' + response.statusCode);
  console.log('HEADERS: ' + JSON.stringify(response.headers));
  response.setEncoding('utf8');
  response.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});
Run Code Online (Sandbox Code Playgroud)

当我把它发布到服务器时,我得到一个错误,告诉我它不是json格式或者它不是utf8,它们应该是.我试图拉取请求网址,但它是null.我刚开始使用nodejs,所以请你好.

javascript http-post node.js

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

jQuery非AJAX POST

在jQuery中有一个简单的非AJAX POST方法吗?

我正在寻找一个与页面上的表单相当的东西,只有通过JavaScript设置的隐藏字段,然后获得POST,导致浏览器加载页面集action.只是一个正常的POST,但通过jQuery设置值.

我想我可以继续实现我当前的方法,但我很好奇jQuery是否提供了一种快速方法.在后台,我想它会动态创建包含所有隐藏值的表单并提交它.

jquery http-post jquery-plugins

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

用Fiddler检查POST请求

如何使用Fiddler检查来自Web服务器的响应.我可以通过将URL粘贴到Request Builder中的字段来轻松检查GET方法,并在xml/json中返回响应.有一个选项POST,但我不知道如何将参数传递给POST.

例如:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ClientLogin");
request.Method = "POST";

string postData = "accountType=HOSTED_OR_GOOGLE";
postData += "&Email=yourusername@gmail.com";
postData += "&Passwd=yourpassword";
postData += "&service=finance";
postData += "&source=test-test-.01";
Run Code Online (Sandbox Code Playgroud)

如何在Fiddler中将我的数据传递给此POST方法以获取响应?

http-post fiddler

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

如何打印httprequest请求的内容?

我有一个涉及httprequest的错误,有时会发生这种错误,因此我想在发生这种情况时记录HttpGet和HttpPost请求的内容.

所以,让我们说,我创建像这样的HttpGet:

HttpGet g = new HttpGet();
g.setURI(new URI("http://www.google.com"));
g.setHeader("test", "hell yeah");
Run Code Online (Sandbox Code Playgroud)

这是我想要的字符串表示:

GET / HTTP/1.1
Host: www.google.com
test: hell yeah
Run Code Online (Sandbox Code Playgroud)

有了post请求,我还想获得内容字符串.

在java for android中最简单的方法是什么?

java android http-get http-post

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