pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用 QNetworkRequest 的 HTTP POST 正確格式

Correct format for HTTP POST using QNetworkRequest(使用 QNetworkRequest 的 HTTP POST 正確格式)
本文介紹了使用 QNetworkRequest 的 HTTP POST 正確格式的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試向 Web 服務發送 JSON 查詢,但我繼續收到內部服務器錯誤作為對查詢的響應.

I'm trying to send a JSON query to a web service and I continue to get internal server errors as a response to the query.

這是我要發送的內容:

POST /api/1.7/webservice.asmx HTTP/1.1
Host: www.superService.com
User-Agent: My app name v0.1
X-Custom-User-Agent: My app name v0.1
Content-Type: application/json
Content-Length:81

{"method":"AuthenticatePlain","loginName":"username@domain.com","password":"mypass"}

這應該發送到 https://www.superService.com/api/1.7/ssapi.asmx

在編寫QNetworkRequest時,用什么方法插入行

In preparing the QNetworkRequest, what method is used to insert the line

POST/api/1.7/webservice.asmx HTTP/1.1?

QNetworkRequest 對象中是否包含完整的標頭?
JSON 數據應該在 QNetworkRequest 對象中,還是作為 QNetworkAccessManager::post() 方法中的第二個參數添加到帖子中?

Is the complete header contained in the QNetworkRequest object?
Should the JSON data be in the QNetworkRequest object or is that added to the post as the second argument in the QNetworkAccessManager::post() method?

這是我當前在 on_btnLogin_clicked() 槽中的代碼:

Here is my current code in the on_btnLogin_clicked() slot:

connect(m_qnam, SIGNAL(finished(QNetworkReply*)),
                 this, SLOT(handleNetworkData(QNetworkReply*)));
    connect(m_qnam,SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
                 this, SLOT(handleSSLErrors(QNetworkReply*)));

    QString baseString = "";
    baseString.append(QString("POST /api/1.7/webservice.asmx HTTP/1.1
").toUtf8());  
    baseString.append(QString("www.superService.com
").toUtf8());
    baseString.append(QString("User-Agent: My app name v0.1
").toUtf8());
    baseString.append(QString("X-Custom-User-Agent: My app name v0.1
").toUtf8());
    baseString.append(QString("Content-Type: application/json
").toUtf8());

    QString jsonString = QString("{");
    jsonString.append(""method":");
    jsonString.append(""AuthenticatePlain"");
    jsonString.append(","loginName":");
    jsonString.append(""username@domain.com"");
    jsonString.append(","password":");
    jsonString.append(""mypass"");
    jsonString.append("}");

    QByteArray json = jsonString.toUtf8();

    baseString.append(QString("Content-Length:").toUtf8());
    baseString.append(QString::number(json.length()));
    baseString.append("
").toUtf8();
    baseString.append(QString("
").toUtf8());
    baseString.append(json);

    request = QNetworkRequest(QUrl("https://www.superService.com/api/1.7/ssapi.asmx"));
    request.setRawHeader()


    qDebug() << "Base String: "<< baseString;


    m_qnam->post(request,baseString.toUtf8());

推薦答案

這不是編寫 HTTP 請求的正確方法.下面這段代碼更正確:

This is not the right way to write your HTTP request. The following piece of code is more correct :

connect(m_qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(handleNetworkData(QNetworkReply*)));
connect(m_qnam,SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(handleSSLErrors(QNetworkReply*)));

// Build your JSON string as usual
QByteArray jsonString = "{"method":"AuthenticatePlain","loginName":"username@domain.com","password":"mypass"}";

// For your "Content-Length" header
QByteArray postDataSize = QByteArray::number(jsonString.size());

// Time for building your request
QUrl serviceURL("https://www.superService.com/api/1.7/ssapi.asmx");
QNetworkRequest request(serviceURL);

// Add the headers specifying their names and their values with the following method : void QNetworkRequest::setRawHeader(const QByteArray & headerName, const QByteArray & headerValue);
request.setRawHeader("User-Agent", "My app name v0.1");
request.setRawHeader("X-Custom-User-Agent", "My app name v0.1");
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Content-Length", postDataSize);

// Use QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, const QByteArray & data); to send your request. Qt will rearrange everything correctly.
QNetworkReply * reply = m_qnam->post(request, jsonString);

這篇關于使用 QNetworkRequest 的 HTTP POST 正確格式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 365文案网_全网创意文案句子素材站 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | DNA亲子鉴定_DNA基因检测中心官方预约平台-严选好基因网 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 合金ICP光谱仪(磁性材料,工业废水)-百科 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 高温高压釜(氢化反应釜)百科 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 国际金融网_每日财经新资讯网 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 物流公司电话|附近物流公司电话上门取货 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 北京康百特科技有限公司-分子蒸馏-短程分子蒸馏设备-实验室分子蒸馏设备 |