<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Stringzusammensetzung funktioniert nicht wie gewollt (GET Request)]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin aktuell dabei für meinen Server von einem Spiel (GTA SA:MP) einen Anti Cheat Client zu schreiben. Das meiste funktioniert auch. Ich habe allerdings aktuell ein Problem bei dem Zusammensetzen eines Strings bei einem GET Request.</p>
<pre><code>string getAccessKey(string username) {
	HINTERNET hInternet = InternetOpenW(L&quot;AC Launcher&quot;, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
	HINTERNET hConnect = InternetConnectW(hInternet, L&quot;blub.domain.de&quot;, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL);
	const wchar_t* parrAcceptTypes[] = { L&quot;text/*&quot;, NULL };
	HINTERNET hRequest = HttpOpenRequestW(hConnect, L&quot;GET&quot;, &quot;/xd.php?username=&quot; + username + &quot;&amp;a=b&quot;, NULL, NULL, parrAcceptTypes, 0, 0);
	BOOL bRequestSent = HttpSendRequestW(hRequest, NULL, 0, NULL, 0);

	std::string strResponse;
	const int nBuffSize = 1024;
	char buff[nBuffSize];

	BOOL bKeepReading = true;
	DWORD dwBytesRead = -1;

	while(bKeepReading &amp;&amp; dwBytesRead!=0) {
		bKeepReading = InternetReadFile( hRequest, buff, nBuffSize, &amp;dwBytesRead );
        strResponse.append(buff, dwBytesRead);
    }

	InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnect);
    InternetCloseHandle(hInternet);

	return strResponse;
}
</code></pre>
<p>Ziel davon ist es, dass er von der Website mir einen Accesskey zurückliefert. Wofür der gebraucht wird ist irrelevant. Es geht hauptsächlich um den String &quot;/index.php?username=&quot; + username + &quot;&amp;request=1&quot;, der mir Probleme bereitet.</p>
<p>Folgende Fehler bekomme ich in der selben Zeile von &quot;/index.php?username=&quot; + username + &quot;&amp;request=1&quot;:</p>
<pre><code>Fehler	1	error C2664: 'HttpOpenRequestW': Konvertierung des Parameters 3 von 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' in 'LPCWSTR' nicht möglich	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34

	3	IntelliSense: Es ist keine passende Konvertierungsfunktion von &quot;&quot;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;&quot;&quot; in &quot;&quot;LPCWSTR&quot;&quot; vorhanden.	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34
</code></pre>
<p>Folgendes wird rot unterstrichen:</p>
<pre><code>&quot;/index.php?username=&quot;
</code></pre>
<p>Vielen Dank für Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326375/stringzusammensetzung-funktioniert-nicht-wie-gewollt-get-request</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 03:05:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326375.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Jun 2014 20:00:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stringzusammensetzung funktioniert nicht wie gewollt (GET Request) on Sat, 14 Jun 2014 20:00:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin aktuell dabei für meinen Server von einem Spiel (GTA SA:MP) einen Anti Cheat Client zu schreiben. Das meiste funktioniert auch. Ich habe allerdings aktuell ein Problem bei dem Zusammensetzen eines Strings bei einem GET Request.</p>
<pre><code>string getAccessKey(string username) {
	HINTERNET hInternet = InternetOpenW(L&quot;AC Launcher&quot;, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
	HINTERNET hConnect = InternetConnectW(hInternet, L&quot;blub.domain.de&quot;, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL);
	const wchar_t* parrAcceptTypes[] = { L&quot;text/*&quot;, NULL };
	HINTERNET hRequest = HttpOpenRequestW(hConnect, L&quot;GET&quot;, &quot;/xd.php?username=&quot; + username + &quot;&amp;a=b&quot;, NULL, NULL, parrAcceptTypes, 0, 0);
	BOOL bRequestSent = HttpSendRequestW(hRequest, NULL, 0, NULL, 0);

	std::string strResponse;
	const int nBuffSize = 1024;
	char buff[nBuffSize];

	BOOL bKeepReading = true;
	DWORD dwBytesRead = -1;

	while(bKeepReading &amp;&amp; dwBytesRead!=0) {
		bKeepReading = InternetReadFile( hRequest, buff, nBuffSize, &amp;dwBytesRead );
        strResponse.append(buff, dwBytesRead);
    }

	InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnect);
    InternetCloseHandle(hInternet);

	return strResponse;
}
</code></pre>
<p>Ziel davon ist es, dass er von der Website mir einen Accesskey zurückliefert. Wofür der gebraucht wird ist irrelevant. Es geht hauptsächlich um den String &quot;/index.php?username=&quot; + username + &quot;&amp;request=1&quot;, der mir Probleme bereitet.</p>
<p>Folgende Fehler bekomme ich in der selben Zeile von &quot;/index.php?username=&quot; + username + &quot;&amp;request=1&quot;:</p>
<pre><code>Fehler	1	error C2664: 'HttpOpenRequestW': Konvertierung des Parameters 3 von 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' in 'LPCWSTR' nicht möglich	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34

	3	IntelliSense: Es ist keine passende Konvertierungsfunktion von &quot;&quot;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;&quot;&quot; in &quot;&quot;LPCWSTR&quot;&quot; vorhanden.	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34
</code></pre>
<p>Folgendes wird rot unterstrichen:</p>
<pre><code>&quot;/index.php?username=&quot;
</code></pre>
<p>Vielen Dank für Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2403926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2403926</guid><dc:creator><![CDATA[Slider_]]></dc:creator><pubDate>Sat, 14 Jun 2014 20:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to Stringzusammensetzung funktioniert nicht wie gewollt (GET Request) on Sat, 14 Jun 2014 20:07:57 GMT]]></title><description><![CDATA[<p>Wenn man zwei Strings per + aneinanderhängt, ist der Typ des resultierenden Ausdrucks <code>std::string</code> . Was du also möchtest ist diesen zusammengesetzten <code>std::string</code> in einen C-String, <code>char const*</code> , zu konvertieren. Das geht mittels der Memberfunktion<a href="http://en.cppreference.com/w/cpp/string/basic_string/c_str" rel="nofollow"> <code>c_str()</code> </a>(Seit C++11 gibt es dafür auch<a href="http://en.cppreference.com/w/cpp/string/basic_string/data" rel="nofollow"> <code>data()</code> </a>):</p>
<pre><code>HINTERNET hRequest = HttpOpenRequestW(hConnect, L&quot;GET&quot;, (&quot;/xd.php?username=&quot; + username + &quot;&amp;a=b&quot;).c_str(), NULL, NULL, parrAcceptTypes, 0, 0);
</code></pre>
<p>(Es wäre sinnvoll diesen String in eine eigene Variable auszulagern, der Lesbarkeit halber.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2403929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2403929</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 14 Jun 2014 20:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to Stringzusammensetzung funktioniert nicht wie gewollt (GET Request) on Sat, 14 Jun 2014 20:10:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielen Dank für Deine Hilfe. Ich habe die Änderung vorgenommen und habe noch diese Fehler:</p>
<pre><code>Fehler	1	error C2664: 'HttpOpenRequestW': Konvertierung des Parameters 3 von 'const char *' in 'LPCWSTR' nicht möglich	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34

Warnung	2	warning C4244: 'Argument': Konvertierung von 'std::streamoff' in 'unsigned int', möglicher Datenverlust	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	63

	3	IntelliSense: Das Argument vom Typ &quot;&quot;const char *&quot;&quot; ist mit dem Parameter vom Typ &quot;&quot;LPCWSTR&quot;&quot; inkompatibel.	c:\users\manuel\documents\visual studio 2010\projects\cosa launcher (console)\main.cpp	34
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2403930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2403930</guid><dc:creator><![CDATA[Slider_]]></dc:creator><pubDate>Sat, 14 Jun 2014 20:10:59 GMT</pubDate></item><item><title><![CDATA[Reply to Stringzusammensetzung funktioniert nicht wie gewollt (GET Request) on Sun, 15 Jun 2014 16:07:15 GMT]]></title><description><![CDATA[<p>Upsi, mein Fehler. <code>LPCWSTR</code> ist ja <code>const wchar_t*</code> , nicht <code>const char*</code> . Du willst also</p>
<pre><code>std::string str = &quot;/xd.php?username=&quot; + username + &quot;&amp;a=b&quot;;
HINTERNET hRequest = HttpOpenRequestW(hConnect, L&quot;GET&quot;, std::wstring(str.begin(), str.end()).c_str(), NULL, NULL, parrAcceptTypes, 0, 0);
</code></pre>
<p>Hier wird der <code>string</code> zu einem <code>wstring</code> konvertiert, in dem jedes Zeichen einfach direkt zugewiesen wird (das dürfte hier reichen, da du ja nur ASCII verwendest).</p>
<p>Edit: Die anderen Warnungen solltest du nicht ignorieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2403932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2403932</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 15 Jun 2014 16:07:15 GMT</pubDate></item></channel></rss>