summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pevzner <pzz@apevzner.com>2020-01-13 21:50:24 +0300
committerAlexander Pevzner <pzz@apevzner.com>2020-01-13 21:50:24 +0300
commitf0238a03fff5d0568264b5faa1332ae9eebf2dba (patch)
tree7c52c05ba1adcf6b32eaba3cc98fbc1413c997ef
parentd253af206ef70d7085dda9106e6aa7a902b39c47 (diff)
Working example added to documentation
-rw-r--r--doc.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/doc.go b/doc.go
index b9cf2f7..3a42bcc 100644
--- a/doc.go
+++ b/doc.go
@@ -22,5 +22,55 @@ by type Message, with the only difference, that Code field of
that Message is the Operation code in request and Status code
in response. So most of operations are common for request and
response messages
+
+Example:
+ package main
+
+ import (
+ "bytes"
+ "net/http"
+ "os"
+
+ "github.com/alexpevzner/goipp"
+ )
+
+ const uri = "http://192.168.1.102:631"
+
+ // Build IPP OpGetPrinterAttributes request
+ func makeRequest() ([]byte, error) {
+ m := goipp.NewRequest(goipp.DefaultVersion, goipp.OpGetPrinterAttributes, 1)
+ m.Operation.Add(goipp.MakeAttribute("attributes-charset",
+ goipp.TagCharset, goipp.String("utf-8")))
+ m.Operation.Add(goipp.MakeAttribute("attributes-natural-language",
+ goipp.TagLanguage, goipp.String("en-US")))
+ m.Operation.Add(goipp.MakeAttribute("printer-uri",
+ goipp.TagURI, goipp.String(uri)))
+ m.Operation.Add(goipp.MakeAttribute("requested-attributes",
+ goipp.TagKeyword, goipp.String("all")))
+
+ return m.EncodeBytes()
+ }
+
+ // Check that there is no error
+ func check(err error) {
+ if err != nil {
+ panic(err)
+ }
+ }
+
+ func main() {
+ request, err := makeRequest()
+ check(err)
+
+ resp, err := http.Post(uri, goipp.ContentType, bytes.NewBuffer(request))
+ check(err)
+
+ var respMsg goipp.Message
+
+ err = respMsg.Decode(resp.Body)
+ check(err)
+
+ respMsg.Print(os.Stdout, false)
+ }
*/
package goipp