<?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[HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden)]]></title><description><![CDATA[<p>Hi,</p>
<p>ich durchstöber grade die string referenzen auf der Suche nach einer Lösung für mein Problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Ich möchte aus dem HTTP Header den Wert von Content-Length &quot;herausschneiden&quot;.</p>
<p>Da fiel mir natürlich zuerst &quot;substr&quot; auf. Jedoch kann ich hier nur den Anfang wegschneiden und nicht was nach Content-Length kommt.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">h_startpos = header.find(&quot;Content-Length:&quot;);
    con_len = header.substr(h_startpos +15);
</code></pre>
<p>ergibt</p>
<blockquote>
<p>155bytes<br />
Connection: closed<br />
Content-Type: text/plain</p>
<p>--HEADER ENDE--</p>
</blockquote>
<p>da ich ja nicht weiß wieviel bytes gesendet werden ob 10 100 oder 1000 kann ich mit dem zweiten parameter von substr natürlich nichts anfangen.</p>
<p>Wer hat den Geistesblitz und eine Idee wie man das lösen könnte?<br />
Oder anders gefragt: Gibt es alternative Funktionen die mir noch nicht bekannt sind`?</p>
<p>EDIT:</p>
<p>Ich glaube den Geistesblitz habe ich gerade mit &quot;erase&quot; bekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265435/http-header-content-length-auslesen-string-nach-abc-und-vor-xyz-ausschneiden</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 03:51:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265435.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Apr 2010 20:54:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 21:01:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich durchstöber grade die string referenzen auf der Suche nach einer Lösung für mein Problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Ich möchte aus dem HTTP Header den Wert von Content-Length &quot;herausschneiden&quot;.</p>
<p>Da fiel mir natürlich zuerst &quot;substr&quot; auf. Jedoch kann ich hier nur den Anfang wegschneiden und nicht was nach Content-Length kommt.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">h_startpos = header.find(&quot;Content-Length:&quot;);
    con_len = header.substr(h_startpos +15);
</code></pre>
<p>ergibt</p>
<blockquote>
<p>155bytes<br />
Connection: closed<br />
Content-Type: text/plain</p>
<p>--HEADER ENDE--</p>
</blockquote>
<p>da ich ja nicht weiß wieviel bytes gesendet werden ob 10 100 oder 1000 kann ich mit dem zweiten parameter von substr natürlich nichts anfangen.</p>
<p>Wer hat den Geistesblitz und eine Idee wie man das lösen könnte?<br />
Oder anders gefragt: Gibt es alternative Funktionen die mir noch nicht bekannt sind`?</p>
<p>EDIT:</p>
<p>Ich glaube den Geistesblitz habe ich gerade mit &quot;erase&quot; bekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886984</guid><dc:creator><![CDATA[taurus]]></dc:creator><pubDate>Thu, 22 Apr 2010 21:01:08 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 21:27:09 GMT]]></title><description><![CDATA[<p>habs nun so gelöst...</p>
<p>Trotzdem Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">size_t h_startpos;
    size_t h_endpos;
    string con_len;
    unsigned int http_content_length;

    h_startpos = header.find(&quot;Content-Length:&quot;);
    header.erase(0, h_startpos + 15);

    h_endpos = header.find(&quot;Connection:&quot;);
    header.erase(h_endpos-2);

    //STR TO INT
    std::stringstream hct(header);
    hct &gt;&gt; http_content_length;

    //CHECK FOR SAME SIZE
    if(content.capacity() == http_content_length) {
        cout &lt;&lt; &quot;RECV DATA OK&quot; &lt;&lt; endl;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1886996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886996</guid><dc:creator><![CDATA[taurus]]></dc:creator><pubDate>Thu, 22 Apr 2010 21:27:09 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 21:43:42 GMT]]></title><description><![CDATA[<p>Sag mal, wann hörst du auf mit dem rumprobieren und lernst C++? Du hast schon wieder etwas produziert, was nicht immer funktionieren könnte. Schon mal überprüft, was <code>capacity</code> wirklich zurückgibt?<br />
<a href="http://www.cplusplus.com/reference/string/string/capacity/" rel="nofollow">http://www.cplusplus.com/reference/string/string/capacity/</a></p>
<p>Oder vielleicht anders gefragt, weisst du überhaupt wie <code>std::string</code> intern funktioniert?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887007</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 22 Apr 2010 21:43:42 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 22:02:12 GMT]]></title><description><![CDATA[<p>Und was machst du, wenn auf Content-Length nicht Connection folgt?<br />
Stattdessen einfach nach dem Zeilenende suchen und bis dorthin ausschneiden.<br />
Oder wenn du darauf vertrauen möchtest, dass die Einheit bytes ist, meinetwegen auch bis zum nächsten Leerzeichen.</p>
<pre><code class="language-cpp">static const char* contentLengthString=&quot;Content-Length:&quot;;
size_t startPos=header.find(contentLengthString);
if (startPos!=header.end()) //Content-Length ist nicht verpflichtend
{
  startPos+=strlen(contentLengthString);
  size_t endPos=startPos:
  while (endPos&lt;header.length() &amp;&amp; header[endPos]!='\r' &amp;&amp; header[endPos]!='\n')endPos++;
  if (endPos&lt;header.length())
  {
    string lenStr=header.substr(startPos,endPos-startPos);
    //...
  }
  else es_gab_kein_Zeilenende();
}
else es_gibt_kein_Content_Length();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1887013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887013</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 22 Apr 2010 22:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 22:03:24 GMT]]></title><description><![CDATA[<p>nun ich hatte hier <a href="http://learningcppisfun.blogspot.com/2007/01/vectors-size-and-capacity.html" rel="nofollow">http://learningcppisfun.blogspot.com/2007/01/vectors-size-and-capacity.html</a> einen vergleich gefunden was size und capacity angeht.. und.. ich sah capacity als passend an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>also doch size? mhh.. wird zeit für ein buch oder ein englisch kurs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887014</guid><dc:creator><![CDATA[taurus]]></dc:creator><pubDate>Thu, 22 Apr 2010 22:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 22:08:41 GMT]]></title><description><![CDATA[<p>Fairerweise muss man sagen, dass der Autor dieses Artikels es nicht gelernt hat, sich kurz zu fassen, was nur Verwirrung stiftet.<br />
size() gibt dir an, wie viele Zeichen der String tatsächlich hat, capacity() gibt an, für wie viele Zeichen bereits Platz reserviert worden ist. Erst wenn capacity() überschritten wird, muss mehr Speicherplatz angefordert werden und der String umkopiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887016</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 22 Apr 2010 22:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to HTTP Header, Content-Length auslesen ( String nach ABC und vor XYZ ausschneiden) on Thu, 22 Apr 2010 22:17:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Stattdessen einfach nach dem Zeilenende suchen und bis dorthin ausschneiden.</p>
</blockquote>
<p>die überlegung hatte ich auch schon, ist aber noch nicht implementiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>PS.: dein code sieht schön aus.. aber da brauch ich erstmal (morgen) 10min bis ich weiß was da vor sich geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887019</guid><dc:creator><![CDATA[taurus]]></dc:creator><pubDate>Thu, 22 Apr 2010 22:17:39 GMT</pubDate></item></channel></rss>