Я отправляю запрашивающий запрос uisng «POST», в макинтош платформенный агент uaser - 10.6.2. Но в windows waht есть пользовательский агент платформы.Что такое платформа useragent для windows platfom?
ответ
Строка пользовательского агента зависит исключительно от браузера или любого другого клиента, который вы используете для выполнения запроса. Это не имеет ничего общего с операционной системой, хотя большинство браузеров будут содержать некоторую информацию о версии ОС.
К примеру, на моей версии Firefox это:
Mozilla/5.0 (Windows NT 5.1; rv:2.0b7) Gecko/20100101 Firefox/4.0b7
и IE6 это:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Здесь Windows NT 5.1
представляет версию операционной системы.
Могу ли я использовать это в качестве строки пользовательского агента Mozilla/5.0 (Windows, U, Windows NT 6.0, en-US; rv: 1.9.1.16) Gecko/20101130 Firefox/3.5.16 (.NET CLR 3.5.30729) – Mahantesh
@Mahantesh: Что вы подразумеваете под «я могу использовать»? Вы пишете собственный клиент - если да, то вы можете использовать любую нужную строку. – casablanca
Но когда я использую это как строку пользовательского агента, Internetreadfile всегда перенастраивает -1, но мне нужно 0. – Mahantesh
Мое предложение - использовать пользовательский агент Internet Explorer. Пользовательский агент IE зависит от того, какое программное обеспечение вы установили, установив диспетчер загрузки, программное обеспечение добавит его идентификатор в пользовательский агент, для IE & firefox (в зависимости от менеджера загрузки).
Чтобы узнать, что ваш UserAgent, в адресной строке IE или типа FF: javascript:alert(navigator.userAgent)
В диалоговом окне нажмите Ctrl + C, чтобы скопировать содержимое
hINetOpen = InternetOpen(_T("SplashID"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);//AK
if (hINetOpen != NULL){
hINetConnect = InternetConnect(hINetOpen, sServerName, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, INTERNET_FLAG_IDN_PROXY, 0);
if (hINetConnect != NULL){
hINetRequest = HttpOpenRequest(hINetConnect, _T("POST"), sObjectName, HTTP_VERSION, 0, NULL, INTERNET_FLAG_RELOAD |INTERNET_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_UNKNOWN_CA | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_NO_CACHE_WRITE, 0);
if (hINetRequest != NULL){
if(HttpSendRequest(hINetRequest, strHeaders, strHeaders.GetLength(), (LPVOID) StrFormdata.GetString(), StrFormdata.GetLength())) {
CString sBodyText;
DWORD nRead= 1024;
char szBuf[ 1025 ] = {0};
while (nRead > 0) {
// Read in a temporary buffer
InternetReadFile(hINetRequest, szBuf, 1024, &nRead);
szBuf[nRead] = '\0';
sBodyText = szBuf;
result = atoi(szBuf);
break;
}
}
}
}
зачем вам нужен агент пользователя ? – mpen
И почему, черт возьми, он помечен C++? Однако доверять пользовательскому агенту очень плохая идея. И этот вопрос слишком непонятен, чтобы действительно иметь смысл для меня. – dvhh